亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

根據值將列表拆分為子列表

根據值將列表拆分為子列表

嗶嗶one 2022-09-27 09:57:43
在這里乞討。我有以下列表(曲線和曲線長度):crvs = [crv, crv, crv, crv, crv, crv, crv, crv, crv] crvsLen = [18, 18, 18, 12, 12, 12, 12, 18, 12]我需要創建子列表?還是2D數組?的 [crvs] 根據其長度如下(但實際的 [crvs] 不是它們的 [crvsLen]):[[18, 18, 18, 18] [12, 12, 12, 12, 12]]我能夠通過以下方式在列表中找到唯一值的計數及其索引:listOfUniqueLenghts = list(dict.fromkeys(crvsLen)) listOfUniqueLenghts = [12, 18] indices = [i for i, x in enumerate(crvsLen) if x == listOfUniqueLenghts[0]]例如,它返回長度為 12 的 [crvs] 的以下索引:indices = [3, 4, 5, 6, 8]如何將 [crvs] 存儲在 2d 數組或復雜列表中,并根據給定任意數量的唯一 crvsLen 及其數量的長度單獨訪問它們?我只能使用庫存庫。
查看完整描述

2 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

制作按長度鍵控的字典可能是最簡單的。一旦你擁有了它,你應該能夠得到你需要的任何其他東西。


crvs = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i']

crvsLen = [18, 18, 18, 12, 12, 12, 12, 18, 12]


d = {}


for length, value in zip(crvsLen, crvs):

    d.setdefault(length, []).append(value)


d

# {18: ['a', 'b', 'c', 'h'], 12: ['d', 'e', 'f', 'g', 'i']}


# all 18s:

d[18]

#['a', 'b', 'c', 'h']


# list of lists:

list(d.values())

# [['a', 'b', 'c', 'h'], ['d', 'e', 'f', 'g', 'i']]


查看完整回答
反對 回復 2022-09-27
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

實現所需內容的最佳方法是使用具有列表值的字典:


d = collections.defaultdict(list)

for crv in crvs:

    d[len(crv)].append(crv)

現在,您有一個字典,其中鍵是唯一長度,值是該長度的 crv 列表。


查看完整回答
反對 回復 2022-09-27
  • 2 回答
  • 0 關注
  • 131 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號