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

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

如何將項(xiàng)目列表與字典中的鍵進(jìn)行匹配?

如何將項(xiàng)目列表與字典中的鍵進(jìn)行匹配?

慕村225694 2023-05-05 14:24:15
這看起來很簡單,但我不知道出了什么問題。首先,我收集了目錄中所有文件名的列表,這些文件名與特定字符串相匹配:import osimport globdl = glob.glob('dir/*abc*')for f in dl:    fn = os.path.basename(f)所以現(xiàn)在我有一個(gè)文件名列表fn,其中包含"abc". 到目前為止一切都很好。我想要做的是遍歷這個(gè)文件名列表,嘗試將它們與字典中的一組鍵進(jìn)行匹配,并在有匹配項(xiàng)的地方打印出該匹配鍵的相應(yīng)字典值。這是我所做的:fn_dict = {"abc.txt": "val1", "abc123.txt": "val2", "def.txt": "val3"}for i in fn:    if i in fn_dict.keys():        print(fn_dict.get(i))    else:        print("No match")我希望能回來"val1","val2"但我只是一遍"No match"又一遍。
查看完整描述

2 回答

?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

fn應(yīng)該是一個(gè)列表,否則它將是一個(gè)字符串和字典部分,你將循環(huán)通過單個(gè)文件名而不是目錄中與模式匹配的所有文件名


import os

import glob

dl = glob.glob('dir/*abc*')

fn = []

for f in dl:

    fn.append(os.path.basename(f))

或使用列表理解


fn = [os.path.basename(f) for f in dl]


查看完整回答
反對 回復(fù) 2023-05-05
?
繁星點(diǎn)點(diǎn)滴滴

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊

在你的for循環(huán)中你重新分配你的fn變量


for f in dl:

    fn = os.path.basename(f) # fn is string now, not a list

然后在你的第二個(gè)for循環(huán)中你遍歷fn變量,它是一個(gè)字符串,所以創(chuàng)建一個(gè)數(shù)組并添加os.path.basename(i)到其中


fn = []

for f in dl:

    fn.append(os.path.basename(f))


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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