Python基础知识-Part6:高级特性之切片&迭代

本文介绍了Python中的切片操作,包括如何从list、tuple和字符串中选取部分数据,以及使用负数下标表示倒数位置。此外,还讲解了迭代的概念,如如何用for循环遍历list、tuple和dict,以及利用enumerate获取索引和元素对。对于dict,还提到了迭代其key、value或items的方法。
摘要由CSDN通过智能技术生成

切片

1、从“list”和“tuple”中取出一部分的做法,除了最笨的一个一个拿出或者循环之外,Python提供了“切片”(Slice)操作。

2、“list_name[0:3]”即表示从“list_name”中,取出从“0”下标到“3”下标之间的数据,但是不包含“3”下标的数据。

3、“切片”也可以使用“负数表示倒数第几个的方式”,“list_name[-2:]”即为“从倒数第二个到最后一个”。

4、灵活运用切片可以很方便的获得需要的数据,“从第6个到最后”、“前5个”、“所有数,每5个取第一个”、“前十个数中的偶数”、“前十个数中的奇数”。

5、“tuple”的使用方式同理“list”即可,只是操作对象成为了“tuple”。

6、“字符串”也可以使用“切片”,如下为“获得去除首尾空格字符串”。

list_name = ['A', 'B', 'C', 'D', 'E']
print("list_name is %s" % (list_name))
print("list_name[0:3] is %s\n" % (list_name[0:3]))
# 切片从0开始索引,0可以省略,list_name[0:3] == list_name[:3]
# list_name[0:3]是从0开始,索取到下标为3为止,但是不包含第(3+1=)4个

print("list_name[-2:] is %s\n" % (list_name[-2:]))

# range()用于创建一个整数列表,range(3)就是[0, 1, 2, 3]
list_NameHyaKu = list(range(99))
print("list_NameHyaKu[5::] is %s\n" % (list_NameHyaKu[5::]))
print("list_NameHyaKu[:5:] is %s\n" % (list_NameHyaKu[:5:]))
print("list_NameHyaKu[::5] is %s\n" % (list_NameHyaKu[::5]))
print("list_NameHyaKu[:10:2] is %s\n" % (list_NameHyaKu[:10:2]))
print("list_NameHyaKu[1:10:2] is %s\n" % (list_NameHyaKu[1:10:2]))

tuple_name = ('a', 'b', 'c', 'd', 'e')
print("tuple_name[-2:] = %s\n" % (tuple_name[-2:],))

# 字符串也可以做切片操作,如下去除首尾空格
str = " hello "
print("str is '%s'" % (str))

str1 = str[1:-1]
print("str1 is '%s'" % (str1))

 

迭代

1、对于给定的“list”或者“tuple”,使用“for”循环来遍历,称为“迭代”(Iteration)。

2、“dict”也是可以迭代的,但是默认情况下迭代出的是“dict”的“key”。可以通过“dict_name.values()”迭代出“dict”的“value”,或者“dict_name.item()”同时迭代“key”和“value”。

3、判断一个对象是否可以进行迭代,需要通过“collections”模块的“Iterable”类型来判断,调用的函数是“isinstance”。

4、“enumerate”函数可以将“list”或者“tuple”变成“索引-元素对”,这样就可以迭代“索引(下标)”和“元素”本身了。

from collections.abc import Iterable
print(isinstance("abc", Iterable))

dict_name = {'a': 1, 'b': 2, 'c': 3}
list_name = list(range(5, 9))
list_name1 = [(1, 2, 3), (4, 5, 6)]
tuple_name = ('a', 'b', 'c')

for key in dict_name:
    print(key)

print()

for value in dict_name.values():
    print(value)

print()

for key, value in dict_name.items():
    print(key, value)

print()

for c in "ABC":
    print(c)

print()

for i, value in enumerate(list_name):
    print(i, value)

print()

for i, value in enumerate(tuple_name):
    print(i, value)

print()

for x, y, z in list_name1:
    print(x, y, z)

print()

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值