python列表 元组索引,获取其中某一行 某一列的方式

对于列表和元组,若想获取其中的一列,不能使用下面的索引方式,这种只有数组才能用:

# 给定一个列表和元组
a = [[1,2,3],[2,3,4],[5,8,9]]  # 列表a
b = ([1,2,3],[2,3,4],[5,8,9])  # 元组b

获取列表中第二列的索引错误使用方式:

a[:,1]  # 把这个里面的值认成了元组
报错:
Traceback (most recent call last):
  File "/home/linux/anaconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3437, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-140fc7631e6a>", line 1, in <module>
    a[:,1]
TypeError: list indices must be integers or slices, not tuple

获取列表中某一行和切片的正确使用方式:

a[2]  # 读取列表中的一行
Out[17]: [5, 8, 9]
a[1:2]
Out[18]: [[2, 3, 4]]
a[0:2]
Out[19]: [[1, 2, 3], [2, 3, 4]]

列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,也就不支持一次性读取一列,即使是对于标准的二维数字列表,也需使用类似如下的循环读取列:

aa =[x[0] for x in a]  # 用于读取列表中的一列
aa
Out[21]: [1, 2, 5]

元组索引错误使用方式:

b[:,1]
报错:
Traceback (most recent call last):
  File "/home/linux/anaconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py", line 3437, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-11-140fc7631e6a>", line 1, in <module>
    a[:,1]
TypeError: tuple indices must be integers or slices, not tuple

正确使用方式:

b[1:2]
Out[14]: ([2, 3, 4],)
b[2]
Out[15]: [5, 8, 9]

参考链接1:CSDN

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值