【问题标题】:Python list to stringPython列表到字符串
【发布时间】:2017-04-24 05:59:28
【问题描述】:

每个列表的Element3 是一个列表(在括号中)。我希望 element3 是字符串 'store1.txt' 而不是 ['store1.txt']。

store_list = [["Freds", "store1"], ["Sams", "store2"], ["Johns", "store3"], ["Toms", "store4"]]
urls_list = ['store1.txt', 'store2.txt', 'store3.txt', 'store4.txt', 'store5.txt', 'store6.txt']
ls = []
for x in store_list:
    str_num = x[1]
    matching = [s for s in urls_list if str_num in s]
    x.insert(3, matching)
    ls.append(x)
for i in ls:
    print i

【问题讨论】:

  • ettanany 和 rassar 的答案都适用于我的示例,但它们不适用于我的实际脚本。将 [0] 添加到匹配行的末尾时,我得到一个 IndexError: list index out of range。添加 .pop() 时,我得到 IndexError: pop from empty list。叹息,但是当我在没有任何一个的情况下运行代码时,它会按照应有的方式运行并在该元素中返回一个列表。
  • 我现在明白了。有些列表是空的,因为它们生成不正确,因此无法弹出空列表。再次感谢您的精彩。

标签: python string python-2.7 list for-loop


【解决方案1】:

将第6行改为:

matching = [s for s in urls_list if str_num in s][0]

列表推导会自动生成一个列表,因此如果您只需要字符串,则需要获取该列表的第一个值。

【讨论】:

  • 很棒的 rassar。谢谢。
【解决方案2】:

matching 是一个列表,您可以使用pop() 来获取您的元素,如下所示:

x.insert(3, matching.pop())

【讨论】:

    猜你喜欢
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    相关资源
    最近更新 更多