提问人:user22391597 提问时间:10/26/2023 最后编辑:Ynjxsjmhuser22391597 更新时间:10/26/2023 访问量:84
在列表和字符串列表中,将字符串追加到列表的正前方
Append string to list directly before it in a list of lists and strings
问:
我有一个列表和字符串列表,并希望将字符串元素附加到列表元素的正前方。下面是一个数据示例。
data = [['way','say','may','lay'], 'wake', ['hay','pay','yay'], 'lake', ['tay'], 'shake']
期望输出应如下所示:
out = [['way','say','may','lay','wake'], ['hay','pay','yay','lake'], ['tay', 'shake']]
我尝试将列表转换为数据帧并使用,但是这似乎只能部分解决我的问题。groupby
cumsum()
谢谢!
答:
2赞
Nick
10/26/2023
#1
您可以将奇数部分和偶数部分压缩在一起,并使用这些部分的列表添加来构建所需的输出:data
out = [odd + [even] for odd, even in zip(data[0::2], data[1::2])]
输出:
[
['way', 'say', 'may', 'lay', 'wake'],
['hay', 'pay', 'yay', 'lake'],
['tay', 'shake']
]
1赞
Suraj Shourie
10/26/2023
#2
你总是可以遍历列表并创建你的列表,在这种情况下,即使你有多个字符串,它们也会被附加到上一个列表中:out
data = [['way','say','may','lay'], 'wake', 'wake2', ['hay','pay','yay'], 'lake', ['tay'], 'shake']
out = []
for elem in data:
if isinstance(elem, list):
out.append(elem)
elif isinstance(elem, str):
# assuming first element is always a list
out[-1].append(elem)
print(out)
输出:
[['way', 'say', 'may', 'lay', 'wake', 'wake2'], ['hay', 'pay', 'yay', 'lake'], ['tay', 'shake']]
2赞
blhsing
10/26/2023
#3
您可以从迭代器创建一个迭代器,并将迭代器与自身压缩在一起,以便从迭代器中获取每个迭代的两个项:data
seq = iter(data)
print([[*lst, item] for lst, item in zip(seq, seq)])
这将输出:
[['way', 'say', 'may', 'lay', 'wake'], ['hay', 'pay', 'yay', 'lake'], ['tay', 'shake']]
0赞
XMehdi01
10/26/2023
#4
此代码采用一个列表,该列表最初是一个空列表,并且是另一个空列表,用于存储生成的子列表。data
words_collected
result
它根据逻辑模式组合这些元素,并将结果存储在 中。result
输出是一个子列表列表,其中每个子列表都是通过以逻辑方式合并元素来创建的。data
data = [
["way", "say", "may", "lay"],
"wake",
["hay", "pay", "yay"],
"lake",
["tay"],
"shake",
]
words_collected = []
result = []
for word_index in range(len(data)):
if word_index % 2 != 0:
words_collected.append(data[word_index])
for list_index in range(len(data)):
if list_index % 2 == 0:
sublist = data[list_index]
sublist.extend([(words_collected[list_index // 2])])
result.append(sublist)
print(result)
输出:
[['way', 'say', 'may', 'lay', 'wake'], ['hay', 'pay', 'yay', 'lake'], ['tay', 'shake']]
评论