列表到字符串和for循环

时间:2015-04-08 16:25:07

标签: python

如何获取列表并获取其中的每个值,尝试为列表中的每个值创建一个URL?

我也尝试了以下内容,但它并没有单独列出每个列表项/值。

sampleguid.append(allguid[1:5])

for guid in sampleguid:
  full_url = url + "?" + str(sampleguid[0])
  print full_url

我没有'之前已经意识到了,但是列表中还有一些不需要的字符,即引号,逗号,括号 - 我该如何删除它们?

我跑步时会发生什么

for guid in sampleguid:
  full_url = url + "?" + str(guid)
  print full_url

是打印出来的吗?

 url?['value1', 'value2', 'value3', 'value4']

我想要的是:

url?value1
url?value2
url?value3
url?value4

3 个答案:

答案 0 :(得分:2)

使用sampleguid[0]时,表示您在每行中使用相同的值,即列表sampleguid中的第一项。

您正在寻找的变化是

sampleguid.append(allguid[1:5])

# for each item, let's call it guid, in the list sampleguid
# do the following
for guid in sampleguid:
  full_url = url + "?" + str(guid)
  print full_url

如果你使用 Python 3.x ,那么你甚至可以使用一行代码:

print(*(url + "?" + str(guid) for guid in sampleguid), sep="\n")

对于 Python 2.x ,您还可以使用以下内容:

print "\n".join((url + "?" + str(guid) for guid in sampleguid))

这两个单线示例非常有趣。第一个代码可能更容易理解。

编辑(不需要的字符):

如果我理解你的意图与不需要的人物,那么这可能对你有用。它不是一个优雅的解决方案,但它可以做到。

sampleguid.append(allguid[1:5])

# for each item, let's call it guid, in the list sampleguid
# do the following
for guid in sampleguid:
    # list of unneeded characters you want to remove
    unneeded_chars = ['"','(',')',"'"]
    splitter_char = ","
    for c in unneeded_chars:
        guid = guid.replace(c,splitter_char)
    for guid_item in guid:
        full_url = url + "?" + str(guid_item)
        print full_url

它首先用特殊的"分离器"替换所有不需要的字符。字符。然后你用"分离器"分割字符串。字符,然后为每个指定的子字符串重复与之前相同的事情。

答案 1 :(得分:0)

您始终访问sampleguid[0],这是列表中的第一项。你可能想要更像这样的东西:

sampleguid.append(allguid[1:5])

for guid in sampleguid:
  full_url = url + "?" + str(guid)
  print full_url

这将对列表中的每个项目进行操作,而不是仅对每次迭代进行操作。

答案 2 :(得分:0)

根据您更新的问题,您实际上有一个您尝试迭代的列表列表。以下应该有效:

for guid in sampleguid:
    for item in guid:
        full_url = url + "?" + str(item)
        print full_url

首先,您从主列表guid中获取每个子列表(sampleguid)。然后,您遍历guid以获取其中的每个item,生成网址并进行打印。