tuple.Python中正确索引的代码

rjee0c15  于 2022-11-19  发布在  Python
关注(0)|答案(1)|浏览(161)

我对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)

我希望有人能解释我做错了什么。

bogh5gae

bogh5gae1#

在元组K中,''的索引是0,'Ч'的索引是1。这意味着在for循环中indexPerson总是0。我不知道为什么你需要一个列表来保存max 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)

输出量:

Найвищий чоловік :
Сухий В.В. Ч 1976 183

All men sorted by height
Сухий В.В. Ч 1976 183
Сидоров Р.П. Ч 1986 180
Бурий П.П. Ч 1975 180
Крутий П.Р. Ч 2001 176
Махмуд К.М. Ч 1993 175
Іванов І.І. Ч 1951 172
Сірий К.В. Ч 1941 167

相关问题