第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

操作列表中、列表中、列表中的每個項目(字符串)

操作列表中、列表中、列表中的每個項目(字符串)

皈依舞 2021-09-02 20:58:26
*在 Windows 上的 Python 3.6.4 上使用 python 3twoDlist = [    [] * len(pathology_case_retrieval_report[1:])    for x in range(len(pathology_case_retrieval_report[1:]))]這是我的長度為 67 的列表。for i in range(len(twoDlist)):    temp = twoDlist[i]    temp.append(SPnumsList[i])    temp.append(requested_ByList[i])    temp.append(dateTimelist1[i])    twoDlist[i] = temp這就是我將每個列表 ( SPnumsList,requested_ByList和dateTimelist1) 中的每個項目附加到較大列表 ( twoDlist)內(nèi)的每個列表的方式。twoDlist 中的示例元素:['Number', 'Physician Name', ['stringN']]*請注意,此列表的第二個索引可以包含 0 到 n 個元素,我想對此進行說明。我需要執(zhí)行字符串操作(通過正則表達式對第二個索引中的每個元素(特別是re.sub(r'[A-Za-z.\'\"\,\n;:]', '', stringN))。然后將新項目附加回列表的第二個索引,替換舊字符串。我還想:將每個stringN元素放入['123', 'Dr. Bob', ['string1','string2', 'string3']]并將其附加到新列表中,同時保留'Number'和'Physician Name'。我希望我的數(shù)據(jù)看起來像的示例:[    ['123', 'Dr. Bob', 'string1'],    ['123', 'Dr. Bob', 'string2'],    ['123', 'Dr. Bob', 'string3'],    # ...]每個['Number', 'Physician Name', ['stringN']]在twoDlist。先感謝您!
查看完整描述

2 回答

?
慕娘9325324

TA貢獻1783條經(jīng)驗 獲得超4個贊

您可以使用reduce(此處的文檔)非常簡潔地將每個記錄拆分為索引 2 處的字符串列表中的每個字符串的多個記錄。在每次迭代中,您還可以執(zhí)行正則表達式替換。


下面是一個例子:


import re

from functools import reduce


twoDlist = [

    ['123', 'Dr. Bob', ['string1','string2', 'string3']],

    ['456', 'Dr. Jim', ['string4','string5', 'string6']],

]


regex = r'[A-Za-z.\'\"\,\n;:]'


final = reduce(

    lambda a, sublist: a + [[*sublist[:2], re.sub(regex, "", st)] for st in sublist[2]],

    twoDlist,

    []

)

reduce迭代twoDlist并且使用列表推導(dǎo)式將每個元素 ( sublist)twoDlist轉(zhuǎn)換為列表列表——索引 2 處的列表的每個元素都對應(yīng)一個列表。然后將這些新列表全部附加到目前已處理的列表中。


結(jié)果final如下:


[

    ['123', 'Dr. Bob', '1'],

    ['123', 'Dr. Bob', '2'],

    ['123', 'Dr. Bob', '3'],

    ['456', 'Dr. Jim', '4'],

    ['456', 'Dr. Jim', '5'],

    ['456', 'Dr. Jim', '6']

]


查看完整回答
反對 回復(fù) 2021-09-02
?
aluckdog

TA貢獻1847條經(jīng)驗 獲得超7個贊

給定的


twoDlist = [['123', 'Dr. Bob', ['string1','string2', 'string3']], ['345', 'Dr. Joe', ['string4', 'string5']]]

你可以發(fā)出


>>> [[[*sub[:-1], x] for x in sub[-1]] for sub in twoDlist]

[[['123', 'Dr. Bob', 'string1'],

  ['123', 'Dr. Bob', 'string2'],

  ['123', 'Dr. Bob', 'string3']],

 [['345', 'Dr. Joe', 'string4'],

  ['345', 'Dr. Joe', 'string5']]]

如果您還想刪除一層嵌套,您可以使用itertools.chain.from_iterable.


>>> tmp = ([[*sub[:-1], x] for x in sub[-1]] for sub in twoDlist)

>>> list(chain.from_iterable(tmp))

[['123', 'Dr. Bob', 'string1'],

 ['123', 'Dr. Bob', 'string2'],

 ['123', 'Dr. Bob', 'string3'],

 ['345', 'Dr. Joe', 'string4'],

 ['345', 'Dr. Joe', 'string5']]


查看完整回答
反對 回復(fù) 2021-09-02
  • 2 回答
  • 0 關(guān)注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號