gpt4 book ai didi

python - 如何在每个子列表的索引[0]处拆分字符串,并使每个拆分索引位于其自己的原始列表中?

转载 作者:行者123 更新时间:2023-11-30 23:29:02 25 4
gpt4 key购买 nike

如何将所有子列表的索引 0 处的字符串拆分为单独的元素,并将每个拆分元素包含在原始子列表的副本中?

例如:

Original_List = [['a,b','c','d','e','f'],['1','2','3'],['z,y','1','2']]

期望的结果:

Desired_List = [['a','c','d','e','f'],['b','c','d','e','f'],['1','2','3'],['z','1','2'],['y','1','2']]

此外,为了进一步阐明这一点,还有一个实际示例:

Original_List = [['Contract_ID1,Contract_ID2','Amount','Date'],['Contract_ID3,Contract_ID4','400','Jan1']]

我希望每个子列表只有一个 Contract_ID,但仍具有与其关联的金额和日期

Desired_List =  [['Contract_ID1','Amount','Date'],['Contract_ID2','Amount','Date'],['Contract_ID3','400','Jan1'],['Contract_ID4','400','Jan1']]

我可以使用下面的内容分割所有子列表索引 0 处的所有字符串,但我不知道如何为每个分割元素复制整个列表,然后替换用分割元素分割的字符串,所以每个分割元素都有自己的列表。

Split_First_Indices_of_Sublists = map(lambda x: x[0].split(","),Original_List)
>>[['a', 'b'], ['1'], ['z', 'y']]
for x in Original_List:
x.pop(0)
>> [['c', 'd', 'e', 'f'], ['2', '3'], ['1', 2]]

最佳答案

我认为将其写为显式循环是最清楚的:

Desired_List = []

for li in Original_List:
for spl in li[0].split(','):
Desired_List.append([spl] + li[1:])

给出:

Desired_List
Out[153]:
[['a', 'c', 'd', 'e', 'f'],
['b', 'c', 'd', 'e', 'f'],
['1', '2', '3'],
['z', '1', '2'],
['y', '1', '2']]

当然,您可以立即将其转换为等效的单行列表组合:

[[spl] + li[1:] for li in Original_List for spl in li[0].split(',')]

可读性可能会或可能不会较差,具体取决于读者:-)

最后一点,请确保这是您真正想要的数据结构。由 Contract_ID 键控的 dict 似乎是最终产品的非常自然的结构。

关于python - 如何在每个子列表的索引[0]处拆分字符串,并使每个拆分索引位于其自己的原始列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21350003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com