[英]Python 3 | Appending a string to an item in a list?
在嘗試了許多不同的方法來解決此問題之后,例如嵌套的for
循環(迭代第一個列表的次數與第二個迭代的長度一樣多),而我嘗試了.join
,但我無法做通緝。
這是問題所在...
我正在使用兩個for
循環來追加相同的列表。
第一個for
循環:
for friend in individual_friends:
friends.append(friend.text)
這給了我:
['Jody Ann Elizabeth Lill\n98 mutual friends\nFriends',
....,
'Jayde Woods\n56 mutual friends\n4 new posts\nFriends']
第二個for
循環:
for link in individual_friends_links:
links = link.get_attribute("href")
friends.append(links)
這給了我:
['Jody Ann Elizabeth Lill\n98 mutual friends\nFriends',
..., '
Jayde Woods\n56 mutual friends\n4 new posts\nFriends',
'https://m.facebook.com/jodyannelizabeth.lill?ref=bookmarks',
...,
'https://m.facebook.com/jayde.woods?ref=bookmarks']
我真正想要的是:
['Jody Ann Elizabeth Lill\n98 mutual friends\nFriends\nhttps://m.facebook.com/jodyannelizabeth.lill?ref=bookmarks',
...,
'Jayde Woods\n56 mutual friends\n4 new posts\nFriends\nhttps://m.facebook.com/jayde.woods?ref=bookmarks']
您犯的錯誤是,通過調用append
,您總是會添加到friends
的末尾 。
但是對於您的鏈接,您不想添加到friends
的末尾,您想要更改已經在friends
中的元素的值。
您需要這樣的東西:
# create your list of friends
for friend in individual_friends:
friends.append(friend.text)
# for every *i*th link, look up the *i*th friend in `friends`,
# and modify that value, instead of adding to the end of `friends`.
for link_index, link in enumerate(individual_friend_links):
friends[link_index] = friends[link_index] + '\n' + link.get_attribute("href")
但這很冗長。 不需要for
-loops做兩個顯式for
。 您需要zip
,它將兩個單獨的列表合並為一個由2個元組組成的列表,並且與上述功能完全相同。
for friend, link in zip(individual_friends, individual_friends_links):
friends.append(friend.text + '\n' + link.get_attribute("href"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.