Python学习之==>数组(二)

时间:2024-08-14 19:36:32

1、切片

 # 切片:是list取值的一种方式
nums = ['段佳琳','陈伟良','王占宇','李波','韶钢']
print(nums[1:3]) # 顾头不顾尾,不包含后面下标的元素
print(nums[1:]) # 从某个下标开始取,取到末尾,末尾的下标可以省略不写
print(nums[:2]) # 从头开始取,取到后面某个下标结束(不包括该下标的元素),开头的下标可以不写
print(nums[:]) # 取所有的元素

切片操作同样适用于字符串,如下:

 info = '你好,今天天气很好'
print(info[2:6:1])
s = 'San Francisco'
print(s[0])
print(s[::-1])

2、步长

 # 步长,隔几个取一次
lis = list(range(1,21)) # 产生一个从1~20的一个数组
print(lis)
# 如果步长是正数,从左往右开始取值
print(lis[::2])
print(lis[0:10:2])
# 如果步长是负数,从右往左开始取值
print(lis[::-2]) # 步长,隔个几个取一次
print(lis[::-1]) # 反转list,产生了一个新的list,不会改变原来list的值,与reverse不同
print(lis)
# -1倒序,从下标为1的元素'2'从右往左取值,因结尾没有取值,所以取到下标为0的元素
print(lis[1::-1])
# -1倒序,开头没有取值,所以默认从20往左取值,取到下标为18的元素‘19’,但不顾尾,所以19不取
print(lis[:18:-1])

3、list循环

 # for循环在循环可迭代对象的时候,每次循环的是里面的每一个元素
lists = ['段佳琳','陈伟良','王占宇','李波','韶钢',[1,2,3,4]]
for name in lists:
print(name)
for name in lists:
if type(name) == list: # 判断变量的类型是否为list类型
for i in name:
print(i)
print(name) # 字符串循环的是每一个字符,包括任何字母、符号及空格
words = 'marry,lily,joker'
for name in words:
print(name)

4、数组练习

 # 统计出所有已交和未交作业的名字及人数
stus = [
['小明','未交'],
['小白','已交'], ['小紫','已交'],
['小红','未交'], ['小绿','未交'],
['小黄','未交'], ['小黑','已交']
] pass_list = [] #已交
fail_list = [] #未交
for stu in stus:
name = stu[0]
status = stu[1]
if status == '已交':
pass_list.append(name)
else:
fail_list.append(name)
print('已交作业的人为:%s,总共有%s人'%(pass_list,len(pass_list)))
print('未交作业的人为:%s,总共有%s人'%(fail_list,len(fail_list)))

5、元组

 # 元组也是一个list,它和list的区别是:元组里面的元素无法修改
t = (1,2,3,4,5,6,7)
print(type(t)) #查看变量类型
print(t[:3]) #切片
print(t[1]) #下标取值 # 元组的元素是不能修改的,一般用于定义数据库连接等不能修改的数据,如下:
lists = (
'192.168.0.1',
'root',
'',
'',
'niuhanyang') # 如果元组里面只有一个元素,那么必须在这个元素后面加一个逗号
t = (1,2,3,4,5,6,7,2)
words=(1,)
words2=('abc',)
print(type(words))
print(type(words2))
print(t.index(2)) # 找到元组的下标,如果有多个相同的元素,返回的是第一个元素的下标
print(t.count(2)) # 找到元素的个数