加入字符串分隔符不同
嘿,我想加入的字符串,但在奇数和偶数的情况2个不同的分隔符号:加入字符串分隔符不同
我有列表
l = [1,2,3,4,5,6,7,8,9]
我需要加入像这样:
1 || 2 || \n 3 || 4 || \n 5 || 6 || \n 7 || 8 || \n 9
因此,在每两个元素之后添加一个额外的换行符。
加入每两个元素,再加入结果:
' || \n '.join([' || '.join([str(v) for v in l[i:i + 2]]) for i in range(len(l))])
或将其分为两个表达式:
paired = [' || '.join([str(v) for v in l[i:i + 2]]) for i in range(len(l))]
final = ' || \n '.join(paired)
后者能与您的预期改变输出更好。
演示:
>>> ' || \n '.join([' || '.join([str(v) for v in l[i:i + 2]]) for i in range(len(l))])
'1 || 2 || \n 2 || 3 || \n 3 || 4 || \n 4 || 5 || \n 5 || 6 || \n 6 || 7 || \n 7 || 8 || \n 8 || 9 || \n 9'
太好了,谢谢!这是我需要的。但我需要在发电机中练习写这个自己:) – maxou
类似的东西?
' || '.join(str(n) if n % 2 else '\n ' + str(n) for n in l)
如果输入不是连续的数字,这将不起作用。 –
此外,预期的输出被改变了,你不得不交换你的条件或你的表达式,在这一点上,你会在开始时得到一个流浪的'\ n'。 –
我做了这个小脚本:
l = [1,2,3,4,5,6,7,8,9]
ret=""
for i in l:
ret=ret + str(i);
if i != 9:
ret = ret + " || ";
if i % 2 == 0:
ret = ret + "\n ";
ret
```
这是更加动态的版本,与评论: 升= [1,2,3,4,5,6,7,8,9] RET = “” 对于i在升: RET =保留+ str(i); #如果i!= 1 [-1],则添加除最后发生的 以外的双管: ret = ret +“||”; #每2个值,如果i%2 == 0,转到换行 : ret = ret +“\ n”; ret –
这是一个更加动态的版本,注释:
l = [1,2,3,4,5,6,7,8,9]
ret=""
for i in l:
ret=ret + str(i);
# Add double pipe except for the last occurence
if i != l[-1]:
ret = ret + " || ";
# Every 2 values, go to newline
if i % 2 == 0:
ret = ret + "\n ";
ret
Hey guys am just a beginner in python but i tried to come up with a code for that question above i hope it is helpful somehow.
l = [1,2,3,4,5,6,7,8,9]
lst = []
lst_odd = []
delimeter1 = '| |'
delimeter2 = "/n"
count = 0
for num in l:
if count == 0:
x = str(num)
lst.append(x)
count += 1
else:
if num % 2 == 0:
y = str(num)
lst.append(y)
else:
z = str(num)
lst_odd.append((delimeter2+z))
if count == 2:
break
main = [lst[0],lst[1],lst_odd[0],lst[2],lst_odd[1],lst[3],lst_odd[2],lst[4],lst_odd[3]]
s = delimeter1.join(main)
print(s)
仍然有问题,因为它是创造space.so“\ n”分隔符,所以我决定先改变它,看看代码是否会进步 – joshua
请解释模式在分隔符后面,向我们展示您到目前为止所尝试的内容! –
你有没有尝试过任何东西呢?你有多远? –
请不要随时更换预期的输出。你能不能预先确定这一点? –