我有一个列表列表,我正在尝试在列表中搜索或寻址数据。例如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我可以得到一个单独的项目index = data[0].index('Sol')print(index)得到我1但是在列表列表中搜索让我感到难以置信。我有几百行数据,如果我想要包含 Spinward-Rimward 的每一行或纬度和经度小于 10 的每一行,我很难过。我需要这个,因为我计划在人们输入恒星系统的名称以查找两颗恒星之间的距离时在纬度/经度上运行算术运算。tl;dr - 我是一个蟒蛇菜鸟,处于锁定状态,并决定为具有 3D 空间的 2d 地图的 Alien RPG 的玩家制作一个有趣的玩具。
1 回答
皈依舞
TA贡献1851条经验 获得超3个赞
如果我想要包含 Spinward-Rimward 的每一行或纬度和经度小于 10 的每一行
第一个非常简单,您已经知道答案:
for item in data:
if item[0] == 'Spinward-Rimward':
print(item)
对于第二个,你会发现 tuple unpack 很方便:
for spin, star, lat, lng, *_ in data:
if lat <= 10 and lng <= 10:
print(item)
这种*星形语法意味着“给我剩下的”作为一个列表,使用_下划线作为变量名是一种传统的说法,即“我不会使用这个值,所以我什至不会费心给它一个真实的名字”。为了获得额外的荣誉,我们可以使用该语法来修改您的第一个问题的答案:
for spin, *rest in data:
if spin == 'Spinward-Rimward':
print(rest)
添加回答
举报
0/150
提交
取消
