[英]Code for correct indexation in tuple. Python
我是 python 的新手,目前我正在尝试编写代码来查找元组/列表中的平均高度。 但是每次我都卡在同一个地方。 问题是我需要按性别来划分人。 Ж- 女性 Ч- 男性。 不要注意另一种语言,添加代码以防万一我总是犯错误(这很糟糕,但总比没有好:))):
K = tuple(['Ж', 'Ч'])
G = ['Іванов І.І. Ч 1951 172',
'Петрова П.І. Ж 1975 165',
'Сидоров Р.П. Ч 1986 180',
'Кот І.В. Ж 1981 168',
'Салата М.В. Ж 1991 170',
'Бурий П.П. Ч 1975 180',
'Сірий К.В. Ч 1941 167',
'Махмуд К.М. Ч 1993 175',
'Солодка Н.В. Ж 1965 168',
'Рибка Т.М. Ж 1986 170',
'Сухий В.В. Ч 1976 183',
'Крутий П.Р. Ч 2001 176',
'Хоматова Р.П. Ж 1975 169']
for index, element in enumerate(G):
G[index] = G[index].split()
max_height_M = [0]
person_name = [0] * 7
for person_info in G:
indexPerson = K.index("Ж")
height = int(person_info[-1])
if max_height_M[indexPerson] < height:
max_height_M[indexPerson] = height
person_name[indexPerson] = " ".join(person_info[:-1])
for i in range(len(max_height_M)):
print('Найвищий чоловік :')
print(person_name[i], max_height_M[i], K[i], end="\n")
for person_info in G:
indexPerson[2] = K.index[0]
height = list((person_info[-1]))
print(height)
我希望有人向我解释我做错了什么。
在你的元组中, K
'Ж' 的索引为 0,'Ч' 的索引为 1。这意味着在你的 for 循环indexPerson
始终为 0。我不确定为什么你需要一个列表来保持最大 M 高度,或人名。
也许试试这个:
K = ("Ж", "Ч")
G = [
"Іванов І.І. Ч 1951 172",
"Петрова П.І. Ж 1975 165",
"Сидоров Р.П. Ч 1986 180",
"Кот І.В. Ж 1981 168",
"Салата М.В. Ж 1991 170",
"Бурий П.П. Ч 1975 180",
"Сірий К.В. Ч 1941 167",
"Махмуд К.М. Ч 1993 175",
"Солодка Н.В. Ж 1965 168",
"Рибка Т.М. Ж 1986 170",
"Сухий В.В. Ч 1976 183",
"Крутий П.Р. Ч 2001 176",
"Хоматова Р.П. Ж 1975 169",
]
def get_height(person_info):
return int(person_info[-1])
def is_male(person):
return "Ч" in person
G = [person.split() for person in G if is_male(person)]
G.sort(key=get_height, reverse=True)
print("Найвищий чоловік :")
print(*G[0])
print()
print("All men sorted by height")
for male in G:
print(*male)
Output:
Найвищий чоловік :
Сухий В.В. Ч 1976 183
All men sorted by height
Сухий В.В. Ч 1976 183
Сидоров Р.П. Ч 1986 180
Бурий П.П. Ч 1975 180
Крутий П.Р. Ч 2001 176
Махмуд К.М. Ч 1993 175
Іванов І.І. Ч 1951 172
Сірий К.В. Ч 1941 167
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.