我对dataframe进行了迭代,但在这里的示例中,我使用了一个列表。
seq = [0, -1, 0, 1, 2, 1, 0, -1, -2, -3, -4, -5, -4, -3, -2, -1]
box = []
for i in range(1, len(seq)):
if seq[i] > seq[i-1]:
box.append(seq[i])
else:
box.append(seq[i-1]+10)
box现在,我想在每个附加值中添加一个字符串前缀,如下所示:
对于If语句字母'A-‘中的所有值
其他语句字母'B-‘中的所有值
我想要的输出是:
[B-10, A-0, A-1, A-2, B-12, B-11, B-10......我在附加方法中使用.join和简单逗号或+进行了尝试,但这些方法都不起作用。对如何做到这一点有什么建议吗?
发布于 2020-05-31 12:33:13
您可以使用f-string文字添加相关字母:
seq = [0, -1, 0, 1, 2, 1, 0, -1, -2, -3, -4, -5, -4, -3, -2, -1]
box = []
for i in range(1, len(seq)):
if seq[i] > seq[i-1]:
box.append(f"A-{seq[i]}")
else:
box.append(f"B-{seq[i-1]+10}")
print(box)
OUT: ['B-10', 'A-0', 'A-1', 'A-2', 'B-12', 'B-11', 'B-10', 'B-9', 'B-8', 'B-7', 'B-6', 'A--4', 'A--3', 'A--2', 'A--1']发布于 2020-05-31 12:45:00
愚蠢的一条线:
box = map(lambda p: "A-" + str(p[1]) if p[1] > p[0] else "B-" + str(p[0] + 10), [(seq[i-1], seq[i]) for i,_ in enumerate(seq[:])][1:])但是严格地说,只需使用字符串连接,但是在连接之前将整数值转换为字符串:
seq = [0, -1, 0, 1, 2, 1, 0, -1, -2, -3, -4, -5, -4, -3, -2, -1]
box = []
for i in range(1, len(seq)):
if seq[i] > seq[i-1]:
box.append("A-" + str(seq[i]))
else:
box.append("B-" + str(seq[i-1]+10))
print (box)https://stackoverflow.com/questions/62116240
复制相似问题