Чтение из списков в Python

#python #list

#python #Список

Вопрос:

Я хочу получить доступ к оценкам, связанным с каждой буквой алфавита, которые хранятся в текстовом файле (stores.txt ). Каждая строка является индексом, и я просто хочу получить номер для каждой буквы и распечатать его, когда я ввожу определенную букву в функцию. Как бы я разделил элемент, чтобы получить число и вернуть его.

 Scores.txt is shown like this: 
A 1
B 3
C 5
D 3
E 1
F 5
G 4
H 3 
I 1
J 10
K 8
L 3
M 5
N 3
O 2
P 5
Q 20
R 3
S 3
T 2
U 1
V 10
W 12
X 16
Y 8
Z 20

This is the code ive used up to now, however this would result in displaying the whole line 
(['A','1']) when i passed A to the function and I would like just 1 to be passed.

def getLetterScore(user_Input):
scoreFileT1 = open('D:/DELL/Desktop/Programming Assignment/scores.txt')
score = []
for line in scoreFileT1:
        line = line.strip(' ')
        line = line.split()
        score.append(line)
scoreFileT1.close()
if user_Input =='a' or user_Input == 'A':
    print(score[0])
  

Комментарии:

1. Пожалуйста, придерживайтесь рекомендаций StackOverflow. Этот сайт не предназначен для поиска ответов на ваши задания по программированию!

2. Поскольку это, похоже, вопрос домашнего задания, я просто дам вам указания, а не прямой ответ. Надеюсь, это еще более полезно для вас в долгосрочной перспективе: 1) операция line.split() создает кортеж. Спросите себя: как распаковать этот кортеж? Или: Как получить доступ к определенному элементу кортежа 2) вы использовали список для переменной score. Вместо этого я рекомендую dict . Спросите себя: почему это гораздо лучший вариант? 3) в общем случае открывайте файлы, используя «with» вместо open() … close()

3. Дополнительное замечание: 4) упростите свой код в отношении этих проверок на «a» и «A», используя методы upper () или lower() .

Ответ №1:

Вот код, который я придумал. В этом случае, если вы введете какую-либо букву в качестве входных данных, будет напечатан соответствующий номер для буквы.

 def getLetterScore(user_Input):
    scoreFileT1 = open('C://Users//Naveendran//Desktop//scores.txt')
    score = []
    for line in scoreFileT1:
        line = line.strip(' ')
        line = line.split()
        score.append(line)
    scoreFileT1.close()
    for i in range(len(score)):
        if user_Input.upper() == score[i][0]: 
            print(score[i][1])
        

b = input("Enter a letter:")
getLetterScore(b)
  

Ответ №2:

Я предлагаю вам использовать этот код

 rfile=open("score.txt")   #add your path here
file=rfile.read()
filesplit=file.split("n")
letter=input("enter The number").capitalize()
for i in filesplit:
    if(i[0]==letter):
        for j in range(2,len(i)):
            print(i[j],end="")