【问题标题】:Array.extend(string) adds every character instead of just the stringArray.extend(string) 添加每个字符而不仅仅是字符串
【发布时间】:2015-04-29 14:41:10
【问题描述】:

我正在尝试将一个元素扩展到 Python 中的列表,但是,它不是扩展索引“i”中的字符串,而是扩展索引“i”中字符串的每个字符。

例如,我有一个名为“strings”的列表,其中只有一个字符串“string1”和一个名为“final_list”的空列表。

我想将'strings'的第一个元素扩展到'final_list',所以我这样做final_list.extend(strings[0])。但不是'final_list'以长度1结束,对应于插入的字符串,列表以7结束。

如果有帮助,这是我的代码:

con = connect()
    i = 0
    new_files = []
    while i < len(files):
        info_file = obter_info(con, files[i])
        if info_file [5] == 0: #file not processed
            new_files.append(files[i])
        i += 1

有人知道我怎样才能让它工作吗?

【问题讨论】:

标签: python string extend


【解决方案1】:

extend 方法将一个可迭代对象作为参数,解包该可迭代对象并将每个元素单独添加到调用它的列表中。在您的情况下,您正在“扩展”一个带有字符串的列表。字符串是可迭代的。因此,字符串被“解包”并且每个字符都是单独添加的:

>>> d = []
>>> d.extend('hello')
>>> print(d)
['h', 'e', 'l', 'l', 'o']

如果您只是想将列表中的一个元素添加到另一个列表中,请使用append。否则,将字符串包围在列表中并重复扩展:

>>> d = []
>>> d.extend(['hello'])
>>> print(d)
['hello']

【讨论】:

    【解决方案2】:

    试试那个:

    final_list.extend([strings[0]])
    

    或:

    final_list.append(strings[0])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 2016-04-08
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多