【问题标题】:Appending list(element) to another list gives an element by letter [duplicate]将列表(元素)附加到另一个列表中按字母给出一个元素[重复]
【发布时间】:2020-03-30 17:00:41
【问题描述】:

对不起这个问题,但我不明白为什么将一个元素添加到列表中作为列表本身添加到其他列表时,以下结果之间的差异:

list_a=[]
list_b=['HELLO','WORLD']
for word in list_b:
    list_a.append([word])
print("Append to dist_list single word: ", list_a)
Output: Append to list_a:  [['HELLO'], ['WORLD']]
list_a=[]
list_b=['HELLO','WORLD']
for word in list_b:
    list_a.append(list(word))
print("Append to list_a: ", list_a)
output: Append to list_a:  [['H', 'E', 'L', 'L', 'O'], ['W', 'O', 'R', 'L', 'D']]

【问题讨论】:

  • 此结果中没有空格。区别在于list(word)[word] 不是同一个意思。
  • list() 接受迭代器,在 list('HELLO') 的情况下,您将获得单独字符的列表。在['HELLO'] 的情况下,您将获得包含一个字符串的列表。
  • 是的。你为什么做这个?为什么不只是list_a.append(word)
  • 你在找extend吗?
  • 对不起,我把标题写错了,每个字母都会成为列表中的一个元素,而不是整个单词都会成为一个元素。我这样做是因为我有一个过程之后需要一个列表列表。通常,结果是[['Hello','world'],['Hola','mundo']],但有时我会得到[['Hello','World']],就像示例中一样。我正在添加到另一个列表以满足以下流程的要求。

标签: python list for-loop append


【解决方案1】:

当您对字符串执行list() 时,该字符串将变成一个列表,该列表为每个单独的值分开。例如:

a = 'string'
b = list(a) 
b = ['s','t','r','i','n','g']

因此不同之处在于,在第一种情况下,您要附加两个项目(都是字符串),而在第二种情况下,您要附加先前转换为具有上述逻辑的列表的字符串,因此您附加了一个每个字符串的列表。这是您获得的结果的差异。第一种情况添加两个字符串,第二种情况添加两个列表。

【讨论】:

    猜你喜欢
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    相关资源
    最近更新 更多