尝试将列表中的以下两个元素组成一个单独的列表

2024-09-28 04:23:38 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我当前的代码,输出是

['50003252714', 'Malle Kask', 
'40003252714', 'Endel Kask', 
'30003252714', 'Peeter Kask', 
'60003252714', 'JĆ¼ri MƤnd', 
'70003252714', 'Laura MƤnd', 
'80003252714', 'Kerli MƤnd', 
'10003252714', 'Elvo Pikk', 
'20003252714', 'Signal Pikk']

我要做的是在原来的列表中创建一个新的列表,其中包含以下两个元素。我想要的最终结果的一个例子是

[["50003252714","Malle Kask"],
["40003252714","Endel Kask"],
[...]]

我试着使用for和while循环,但它变得非常混乱,我没有得到我想要的结果。你知道吗

nimedFail = open("nimed.txt")
lapsedFail = open("lapsed.txt")

def seosta_lapsed_ja_vanemad(lapsed,nimed):
    nimed = []
    lapsed = []
    eraldatud_nimed_töötlemata = []
    eraldatud_nimed = []
    eraldatud_nimed_listides = []

    for rida in nimedFail:
        nimed.append(rida.strip())
    for rida in lapsedFail:
        lapsed.append(rida.strip())
    for ele in nimed:
        eraldatud_nimed_töötlemata.append(ele.split(" "))
    for ele in eraldatud_nimed_töötlemata:
        x = " ".join(ele[1:3])
        eraldatud_nimed.append(ele[0])
        eraldatud_nimed.append(x)


    return eraldatud_nimed


print(seosta_lapsed_ja_vanemad("nimed.txt","lapsed.txt"))

Tags: intxtforndappendelelapsedendel
3条回答

在读取文件时,您可能已经创建了组合列表/列表列表,类似于

with open("nimed.txt", 'r') as nimedFail, open("lapsed.txt", 'r') as lapsedFail:
    l_out = [[a.strip(), b.strip()] for a, b in zip(nimedFail, lapsedFail) if a.strip() and b.strip()]

我真的不明白变量名,但我会尝试编码它。你知道吗

def seosta_lapsed_ja_vanemad(lapsed,nimed):
    with open(lapsed, 'r') as lapsed_file_handler:
        lapsed_content = lapsed_file_handler.readlines()
    with open(nimed, 'r') as nimed_file_handler:
        nimed_content = nimed_file_handler.readlines()

假设两个文件的行号相等,您可以循环浏览它们:

    return [[lapsed_content[i], nimed_content[i]] for i in range(0, len(lapsed_content))]

我建议你用元组或字典代替嵌套列表。你知道吗

我的方法是:

list = ['50003252714', 'Malle Kask',
'40003252714', 'Endel Kask',
'30003252714', 'Peeter Kask',
'60003252714', 'JĆ¼ri MƤnd',
'70003252714', 'Laura MƤnd',
'80003252714', 'Kerli MƤnd',
'10003252714', 'Elvo Pikk',
'20003252714', 'Signar Pikk']

使用iter()转换列表,然后在循环中使用next()迭代器:

it = iter(a)
final = []
for a in it:
    list_of_two = [a, next(it)]
    final.append(list_of_two)
print(final)

输出:

[['50003252714', 'Malle Kask'], ['40003252714', 'Endel Kask'], ['30003252714', 'Peeter Kask'], ['60003252714', 'JĆ¼ri MƤnd'], ['70003252714', 'Laura MƤnd'], ['80003252714', 'Kerli MƤnd'], ['10003252714', 'Elvo Pikk'], ['20003252714', 'Signar Pikk']]

相关问题 更多 >

    热门问题