例如,给定一个列表nums = [1, 2, 3, 4, 5, 6, 7, 8]
,我想用分号将每对连接起来,并用逗号将每对数字连接起来以接收以下字符串:result = 1,2;3,4;5,6;7,8
。
如何在没有for
循环(例如,使用join
)的情况下做到这一点?
答案 0 :(得分:4)
使用slicing
例如:
nums = [1, 2, 3, 4, 5, 6, 7, 8]
nums = [str(i) for i in nums]
print( ";".join(",".join(nums[i:i+2]) for i in range(0, len(nums), 2)) )
输出:
1,2;3,4;5,6;7,8
答案 1 :(得分:0)
您也可以cycle穿过分隔符:
from itertools import cycle, chain
nums = [1, 2, 3, 4, 5, 6, 7, 8]
nums = [str(n) for n in nums]
''.join(chain.from_iterable(zip(nums, cycle(',;'))))[:-1]
# '1,2;3,4;5,6;7,8'
答案 2 :(得分:0)
尝试一下:
result = ";".join([",".join([str(i) for i in nums[k:k+2] ]) for k in range(len(nums)-2)])
输出:
'1,2;2,3;3,4;4,5;5,6;6,7'