为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中的列表列表中搜索/查找

在 Python 中的列表列表中搜索/查找

呼唤远方 2022-10-06 19:48:59
我有一个列表列表,我正在尝试在列表中搜索或寻址数据。例如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)


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 213 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号