list
在Python中考虑以下内容.
c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
Run Code Online (Sandbox Code Playgroud)
我想在n
哪里创建字符串n = len(c)/6
.因此,对于此示例,预期输出将是:
str1=1|2|3|4|5|6
str2=7|8|9|10|11|12
str3=13|14|15|16|17|18
Run Code Online (Sandbox Code Playgroud)
我如何使用循环?请注意,长度c
始终是倍数6
.
使用a comprehension
生成sub-list
块,然后解压缩到变量中:
c = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]
str1, str2, str3 = (c[i:i+6] for i in range(0, len(c), 6))
Run Code Online (Sandbox Code Playgroud)
或者,如果你真的想要strings
:'1|2|3|4|5|6'
那么你可以使用str.join
,sub-lists
但这需要将所有内容转换为strings
第一个:
str1, str2, str3 = ('|'.join(map(str, c[i:i+6])) for i in range(0, len(c), 6))
Run Code Online (Sandbox Code Playgroud)
这使:
>>> str1
'1|2|3|4|5|6'
>>> str2
'7|8|9|10|11|12'
>>> str3
'13|14|15|16|17|18'
Run Code Online (Sandbox Code Playgroud)
请注意,在第二个片段中,您可以使用a generator-expression
而不是map()
通常被认为更Pythonic,但它们会为简单的事物(如转换为strings
)占用更多字符.