Python 列表到字符串和for循环

Python 列表到字符串和for循环,python,Python,如何获取列表并使用其中的每个值,尝试为列表中的每个值创建URL 我也尝试了下面的方法,但它并没有单独获取每个列表项/值 sampleguid.append(allguid[1:5]) for guid in sampleguid: full_url = url + "?" + str(sampleguid[0]) print full_url 我以前没有意识到这一点,但列表中也有一些不需要的字符,如引号、逗号、方括号-如何删除这些字符 我跑步的时候会发生什么 for guid in

如何获取列表并使用其中的每个值,尝试为列表中的每个值创建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

当使用
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

它首先用一个特殊的“拆分器”字符替换所有不需要的字符。然后,用“拆分器”字符拆分字符串,然后对每个指定的子字符串重复与以前相同的操作。

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

sampleguid.append(allguid[1:5])

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

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

根据您更新的问题,您实际上有一个列表,其中列出了您要迭代的列表。以下方面应起作用:

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

首先,从主列表
sampleguid
中获取每个子列表(
guid
)。然后,您迭代
guid
以获取其中的每个
项目,生成URL并打印它。

可能您需要
full\u URL=URL+“?”+guid
,每次都使用
sampleguid
中的第一个元素。@vaultah导致TypeError:无法连接'str'和'list'对象扫描您给出了一个包含不需要字符的值的示例,然后是预期的结果?是不是有可能存在
guid=“value1()”
,而您只想使用
guid=“value1”
?澄清了问题a位很好-thx,我以前没有意识到,但列表中还有一些不需要的字符,即引号、逗号、括号-我如何删除它们?请,更新你的问题,并给出一些你想删除的引号、逗号等的例子。。。然后我将编辑我的answer@MarekOP所指的“不需要的字符”实际上是一个列表的表示——他有一个列表列表,而不仅仅是一个项目列表。没有必要删除这些字符,因为它们不相关。请查看解决方案。@MattDMo即使在澄清之后,我也了解到,前面案例中的打印行也可能是类似于
url?x,y,z'的内容,其目的是在三行上获得
url?x
url?y`和
url?z
。我猜@Tony选择的例子并不是最好的例子,而且这个问题比“列表列表”更普遍。