Join a list of items with different types as string in Python
我需要加入一个项目列表。列表中的许多项是从函数返回的整数值。IE:
1 | myList.append(munfunc()) |
如何将返回的结果转换为字符串以便将其与列表联接?
对于每个整数值,是否需要执行以下操作:
1 | myList.append(str(myfunc()) |
有没有更多的方法来解决铸造问题?
调用
您可能想考虑一下为什么需要一个字符串列表。您可以将它保留为整数列表,并且只在需要显示整数时将其转换为字符串。例如,如果您有一个整数列表,那么可以这样做:
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] |
但是,正如在python网站https://docs.python.org/2/library/timeit.html上使用映射的timeit示例中所述,使用映射更快。所以我建议你使用
你的问题很清楚。也许您正在寻找扩展,以便将其他列表的所有元素添加到现有列表中:
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列表前添加一个
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)] |
稍后,如果您需要它作为字符串,您可以使用字符串或格式字符串: