我正在嘗試列印以下兩個串列中的每個專案:
lNames = ['John','David','Michael']
lAges = [45,14,32]
with the format: "Person 0, Name: John, Age 34".
I tried adding another list:
```py
lPersons = [0, 1, 2]
試過這段代碼:
lNames = ['John','David','Michael']
lAges = [45,14,32]
lPersons = [0, 1, 2]
for a in lNames:
for b in lAges:
for c in lPersons:
print("Person: " c ", Name: " a ", Age: " b)
這給出了TypeError, 因為我在列印時錯誤地將整數與字串組合在一起。對于想要的結果,我缺少什么?
uj5u.com熱心網友回復:
兩個問題:
for回圈中的嵌套比必要的要多。您不想遍歷所有三個串列中的每個元素組合;相反,您有一個人員串列和有關這些人的資訊,并且您希望一次列印一個人的資訊。這只需要遍歷每個串列。如錯誤所示,您不能連接字串和整數。您可以改用f 字串。
這是解決這兩個問題的代碼片段:
for i in range(len(lNames)):
print(f"Person: {lPersons[i]}, Name: {lNames[i]}, Age: {lAges[i]}")
或者,更好的是,使用zip():
for name, age, person_id in zip(lNames, lAges, lPersons):
print(f"Person: {person_id}, Name: {name}, Age: {age}")
這些輸出:
Person: 0, Name: John, Age: 45
Person: 1, Name: David, Age: 14
Person: 2, Name: Michael, Age: 32
uj5u.com熱心網友回復:
如果您的姓名和年齡串列的長度相同,那么您可以這樣做:
names = ['John','David','Michael']
ages = [45,14,32]
for i, (n, a) in enumerate(zip(names, ages)):
print(f'Person {i}, Name: {n}, Age {a}')
輸出:
Person 0, Name: John, Age 45
Person 1, Name: David, Age 14
Person 2, Name: Michael, Age 32
uj5u.com熱心網友回復:
在不使用f""格式的情況下,您可以使用一個 for 回圈來實作該結果,但是在繼續使用該解決方案之前,您需要檢查您的三個串列具有相同的長度并且它們的資料是正確的:
lNames = ['John','David','Michael']
lAges = [45,14,32]
for i in range(len(lAges)):
print("Person: " str(i) ", Name: " lNames[i] ", Age: " str(lAges[i]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/466029.html
