簡體   English   中英

元組中正確索引的代碼。 Python

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM