在python中以字符串形式加入具有不同类型的项列表

Join a list of items with different types as string in Python

我需要加入一个项目列表。列表中的许多项是从函数返回的整数值。IE:

1
myList.append(munfunc())

如何将返回的结果转换为字符串以便将其与列表联接?

对于每个整数值,是否需要执行以下操作:

1
myList.append(str(myfunc())

有没有更多的方法来解决铸造问题?


调用str(...)是将某些内容转换为字符串的Python式方法。

您可能想考虑一下为什么需要一个字符串列表。您可以将它保留为整数列表,并且只在需要显示整数时将其转换为字符串。例如,如果您有一个整数列表,那么可以这样做:

1
print ', '.join(str(x) for x in list_of_ints)

我不太确定你所说的"join"是什么意思,因为你在问题中使用的语法非常糟糕,但是如果我正确理解了你的问题,将整数传递给str没有什么错。你可能不这样做的一个原因是mylist实际上应该是一个整数列表,例如,将li中的值相加是合理的。在这种情况下,在将ints附加到mylist之前,不要将它们传递给str。如果在附加前不转换为字符串,则可以通过执行以下操作来构造一个大字符串

1
', '.join(map(str, myList))


可以使用python中的map函数。它需要两个论点。第一个参数是必须用于列表中每个元素的函数。第二个论点是不可论证的。

1
2
3
a = [1, 2, 3]  
map(str, a)  
['1', '2', '3']

将列表转换为字符串后,可以使用简单的连接函数将列表组合为单个字符串。

1
2
3
a = map(str, a)    
''.join(a)      
'123'

1
2
3
a=[1,2,3]
b=[str(x) for x in a]
print b

上面的方法是将列表转换为字符串的最简单和最一般的方法。另一个简短的方法是-

1
2
3
a=[1,2,3]
b=map(str,a)
print b

有三种方法可以做到这一点。

假设你有一个整数列表

1
my_list = [100,200,300]
  • "-".join(str(n) for n in my_list)
  • "-".join([str(n) for n in my_list])
  • "-".join(map(str, my_list))
  • 但是,正如在python网站https://docs.python.org/2/library/timeit.html上使用映射的timeit示例中所述,使用映射更快。所以我建议你使用"-".join(map(str, my_list))


    你的问题很清楚。也许您正在寻找扩展,以便将其他列表的所有元素添加到现有列表中:

    1
    2
    3
    4
    >>> x = [1,2]
    >>> x.extend([3,4,5])
    >>> x
    [1, 2, 3, 4, 5]

    如果要将整数转换为字符串,请使用str()或字符串插值,可能会与列表理解结合使用,即。

    1
    2
    3
    4
    >>> x = ['1', '2']
    >>> x.extend([str(i) for i in range(3, 6)])
    >>> x
    ['1', '2', '3', '4', '5']

    所有这些都被认为是Python(好吧,一个生成器表达式更像是Python,但是让我们保持简单的主题)


    例如:

    1
    2
    3
    4
    5
    lst_points = [[313, 262, 470, 482], [551, 254, 697, 449]]

    lst_s_points = ["".join(map(str, lst)) for lst in lst_points]
    print lst_s_points
    # ['313 262 470 482', '551 254 697 449']

    至于我,我想在每个str列表前添加一个str

    1
    2
    3
    # here o means class, other four points means coordinate
    print ['0 ' +"".join(map(str, lst)) for lst in lst_points]
    # ['0 313 262 470 482', '0 551 254 697 449']

    或单一列表:

    1
    2
    3
    4
    5
    6
    7
    8
    lst = [313, 262, 470, 482]
    lst_str = [str(i) for i in lst]
    print lst_str,",".join(lst_str)
    # ['313', '262', '470', '482'], 313, 262, 470, 482

    lst_str = map(str, lst)
    print lst_str,",".join(lst_str)
    # ['313', '262', '470', '482'], 313, 262, 470, 482

    也许你不需要数字作为字符串,只需要:

    1
    functaulu = [munfunc(arg) for arg in range(loppu)]

    稍后,如果您需要它作为字符串,您可以使用字符串或格式字符串:

    print"Vastaus5 = %s" % functaulu[5]