Python序列基本操作(四)元组

#二维列表的应用
room = [[101,102,103,104,105],
        [201,202,203,204,205],
        [301,302,303,304,305]]
print(room)
[[101, 102, 103, 104, 105], [201, 202, 203, 204, 205], [301, 302, 303, 304, 305]]
#用循环语句形成上述列表
house=[]  #定义一个空列表
for i in range(1,4):   #for循环从1到3楼
    house.append([])    #增加一个空列表
    for j in range(1,6):  #房号,每层1到5层
        house[i-1].append(i*100+j)  #房号命名规则
print(house)
[[101, 102, 103, 104, 105], [201, 202, 203, 204, 205], [301, 302, 303, 304, 305]]
#用列表推导式生成二维列表
house1=[[i*100+j for j in range(1,6)] for i in range(1,4)]
print(house1)
[[101, 102, 103, 104, 105], [201, 202, 203, 204, 205], [301, 302, 303, 304, 305]]
#分别用横版和竖版打印诗句
str1= "白日依山尽"
str2= "黄河入海流"
str3= "欲穷千里目"
str4= "更上一层楼"
list1=[list(str1),list(str2),list(str3),list(str4)]
print("\n--横版--\n")
for i in range(4):  #循环四行
    for j in range(5): #循环每行的字
        if j==4:     #如果是每行最后一个字
            print(list1[i][j])  #换行输出
        else:
            print(list1[i][j],end="") #不换行输出
--横版--

白日依山尽
黄河入海流
欲穷千里目
更上一层楼
list1.reverse()#逆
print("\n--竖版--\n")
for i in range(5):
    for j in range(4):
        if j ==3:
            print(list1[j][i])
        else:
            print(list1[j][i],end="")
--竖版--

更欲黄白
上穷河日
一千入依
层里海山
楼目流尽
#元组  用小括号表示 (元素1,元素2,......)
#元组的创建与删除
#使用赋值运算符创建 tuplename=(元素1,元素2,......)
num1=(7,14,21,28,35,42)   #数值型
print(num1)
(7, 14, 21, 28, 35, 42)
str5=("哈伦","shenda","武汉加油","中国加油")   #字符串型
print(str5)
('哈伦', 'shenda', '武汉加油', '中国加油')
#混合型
mix = ("halun",["wuhan","hubei","zhongguo"],27,(1,2,3,4),"世界")   #包括数值,字符串,列表,元组的元组
print(mix)
('halun', ['wuhan', 'hubei', 'zhongguo'], 27, (1, 2, 3, 4), '世界')
#只有一个元素的元组要注意,
tup = ("i love wuhan")
print(tup)
i love wuhan
print(type(tup))   #显示类型是字符串,不是元组
<class 'str'>
tup1 = ("i love wuhan",)   #加个逗号,显示元组
print(type(tup1))
<class 'tuple'>
#创建空元组
emptytup=()
print(emptytup)
()
print(type(emptytup))  #空元组
<class 'tuple'>
#创建有规律元组
tup2 = tuple(range(3,22,3))   #创建步长为3的等差数列元组
print(tup2)
(3, 6, 9, 12, 15, 18, 21)
#删除元组  del 
#语法为 del tuplename
#访问元组元素
#直接用print输出,通过索引输出,通过切片输出
print(mix)   #输出元组全部元素
('halun', ['wuhan', 'hubei', 'zhongguo'], 27, (1, 2, 3, 4), '世界')
print(mix[1])  #输出索引位置为1的元素
['wuhan', 'hubei', 'zhongguo']
print(mix[1:3])   #输出索引值为1和2的元组元素
(['wuhan', 'hubei', 'zhongguo'], 27)
#遍历元组所有元素
car = ("大众","本田","丰田","别克","凯迪拉克")
print("您好,欢迎选购喜欢的车型,我们代理的品牌车有:\n")
for i in car:
    print(i + "牌汽车",end="")
您好,欢迎选购喜欢的车型,我们代理的品牌车有:

大众牌汽车本田牌汽车丰田牌汽车别克牌汽车凯迪拉克牌汽车
#分两列显示NBA前八名球队
print("2017-2018赛季西部联盟前八名球队:\n")
team = ("火箭","马刺","开拓者","小牛","爵士","森林狼","鹈鹕","雷霆")
for index,item in enumerate(team):
    if index%2==0:
        print(item + "\t\t",end="")   #不换行
    else:
        print(item + "\n")   #换行
   

2017-2018赛季西部联盟前八名球队:

火箭		马刺

开拓者		小牛

爵士		森林狼

鹈鹕		雷霆
#修改元组元素
#将2017-2018NBA前八名西部球队中的小牛改为勇士
team[3]="勇士"
print(team)    #报错,元组不允许修改单个元素,可直接重新赋值
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-23-e6a3158407ed> in <module>()
      1 #修改元组元素
      2 #将2017-2018NBA前八名西部球队中的小牛改为勇士
----> 3 team[3]="勇士"
      4 print(team)


TypeError: 'tuple' object does not support item assignment
#元组添加元素,通过+连接
team1=("小牛","太阳")
allteam = team + team1
print(allteam)
('火箭', '马刺', '开拓者', '小牛', '爵士', '森林狼', '鹈鹕', '雷霆', '小牛', '太阳')
#只添加一个元素,应该加逗号(元素,)
#元组推导式,快速生成满足条件的元组,和列表推导式类似
#生成随机数元组
import random
randomn = (random.randint(10,100) for i in range(10))
print(tuple(randomn))   #注意要加tuple ,否则报错


(11, 13, 24, 99, 60, 63, 78, 16, 53, 38)
#元组和列表的区别
#列表属于可变序列,可添加修改删除,可切片处理;元组是不可变序列,不能修改,只能整体处理,切片只能访问
#元组访问速度快,列表访问速度慢
#元组可作为字典键,列表不可
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈伦2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值