元组(Tuple)的读写操作
*
元组就是不可变的列表
*
元组使用小括号,列表使用中括号
tup1 = (‘physics’,’chemistry’,1997,2000)
*
元组的读取方式和列表相同
(5,6,7)+(8,9,10) = (5,6,7,8,10) //生成一个新元组
('see', 'you') * 2 = ('see','you','see','you')
*
创建
t = ('a','b','c',1,2,3)
*
获取数据,与列表相同
print(t[5]) #正序索引,从第0开始获取第6个元素,也可以用倒序从-1开始。
print(t[1:4]) #左闭右开,获取3个
print('b' in t) #成员运算符
*
元组在创建后内容不可变,不可新增
t[0] = 2 # 会报错
t.append('f') # 会报错
*
如果元组内持有列表,那么列表内容是允许被修改的
t2 = (['张三',38,5000],['李四',28,2000])
item = t2[0]
item[1] = 40
print(t2) #这样t2的第一个列表元素中的38就改为40了。
*
元组运算符
t3 = (1,2,3)+(4,5,6)
print(t3) #(1,2,3,4,5,6)
print('see', 'you') *2 #('see','you','see','you')
print('see')*2 #seesee,这里会变成一个字符串
print('see',)*2 # ('see','see')这样才会被认为是元组
列表与元组的区别与应用场景
*
区别
列表:内容允许扩展;内存存储动态变化;效率较低;运行时数据需要变更时使用;保存天气数据、股市数据
元组:内容不可变;创建后固定不变;效率最高;用于保存稳定不变的数据;保存国家名、元素周期表
序列
*
序列(Sequence)是指有序的队列
*
序列中的元素顺序时按照添加时的先后顺序排列的
*
序列中的数据通过索引获取
**序列不是一种数据类型,是一类数据结构的统称**
比如列表、元组都是这类序列数据结构。
序列包含常用数据结构
*
字符串(Str) //一个个字母按先后顺序排列,可以按索引获取
*
列表
*
元组
*
数字序列(Range) //0到100
range用于表示数字序列,内容不可变
使用range()函数创建
语法:R = RANGE(0,100) //左闭右开,产生0-99这个数字序列
range函数声明变量时不处理,只有在使用的时候才进行处理和解析。
r1 = range(10,20)
print(r1) //结果是range(10,20),此时不处理
#### 增加步长
r2 = range(10,20,2)
print(r2) //10,12,14,16,18
**创建后不可改变,r2[0:2],会在R2范围能生成一个新的range**
### 成员运算符in
12 in range(10,20)
数字序列的经典案例(主要配合for循环使用)
*
通过range遍历其他序列
> c = "abcdefg"
for i in range(0,len(c)):
letter = c[i]
print(letter)
*
科学运算(质数,斐波那契数列)
> 斐波那契数列 1,1,2,3,5,8.......
'''
result = [ ]
for i in range(0,50):
if i == 0 or i == 1:
result.append(1)
else:
result.append(result[i-2] + result[i-1])
print(result)
'''
> 判断质数
'''
l = 776351721
is_prime = True
for i in range(2,l):
if l % i == 0 :
print(i)
is_prime = False
break
if is_prime == True;
print("{0}是质数".format(l))
else:
print("{0}不是质数".format(l))
'''
# 序列类型的互相转换
l1 = ['a','b','c']
t1 = ('d','e','f')
s1 = 'abc123'
s2 = 'abc,123'
r1 = range(1,4)
*
list() - 转换为列表
l2 = list(t1) //[''d,'e','f'] 元组转为列表
l3 = list(s1) //['a','b','c','1','2','3'] 字符串转为列表
l4 = s2.split(',') //['abc','123'] 字符串切割后转换成列表,split默认就是转换为列表
l5 = list(r1) //[1,2,3] range 转换为整数列表
*
tuple() - 转换为元组
和列表基本相同,但是split需要用tuple()强制转换为元组
t2 = tuple(s2.split(',')) //('abc','123')
*
join()、str() - 转换为字符串
//str函数用于将单个数据转换为字符串
//join对列表进行连接
str(l1) // ['a','b','c'] 只是把列表整个转为字符串
"".join(l1) // abc ""代表一个分隔符 把列表字符串元素连接成一个字符串
"|".join(l1) //a|b|c
//join必须要求所有元素都是字符串,所以如果要把range转为字符串需要特殊处理。
'''
s3 = ""
for i in r1:
s3 += str(i)
print(s3)
'''
//结果返回 字符串123
网友评论