呼喚遠(yuǎn)方
2022-10-06 19:48:59
我有一個列表列表,我正在嘗試在列表中搜索或?qū)ぶ窋?shù)據(jù)。例如print(data[0])print(data[12])給我['Spinward-Rimward', 'Sol', 0, 0, 'N/A', '']['Spinward-Rimward', 'POL-6387', 2, -8, 'TWE', 'Atol']和print(data[0][0])給我Spinward-Rimward我可以得到一個單獨(dú)的項(xiàng)目index = data[0].index('Sol')print(index)得到我1但是在列表列表中搜索讓我感到難以置信。我有幾百行數(shù)據(jù),如果我想要包含 Spinward-Rimward 的每一行或緯度和經(jīng)度小于 10 的每一行,我很難過。我需要這個,因?yàn)槲矣?jì)劃在人們輸入恒星系統(tǒng)的名稱以查找兩顆恒星之間的距離時在緯度/經(jīng)度上運(yùn)行算術(shù)運(yùn)算。tl;dr - 我是一個蟒蛇菜鳥,處于鎖定狀態(tài),并決定為具有 3D 空間的 2d 地圖的 Alien RPG 的玩家制作一個有趣的玩具。
1 回答

皈依舞
TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個贊
如果我想要包含 Spinward-Rimward 的每一行或緯度和經(jīng)度小于 10 的每一行
第一個非常簡單,您已經(jīng)知道答案:
for item in data:
if item[0] == 'Spinward-Rimward':
print(item)
對于第二個,你會發(fā)現(xiàn) tuple unpack 很方便:
for spin, star, lat, lng, *_ in data:
if lat <= 10 and lng <= 10:
print(item)
這種*星形語法意味著“給我剩下的”作為一個列表,使用_下劃線作為變量名是一種傳統(tǒng)的說法,即“我不會使用這個值,所以我什至不會費(fèi)心給它一個真實(shí)的名字”。為了獲得額外的榮譽(yù),我們可以使用該語法來修改您的第一個問題的答案:
for spin, *rest in data:
if spin == 'Spinward-Rimward':
print(rest)
添加回答
舉報
0/150
提交
取消