文章目录

  • 1.列表(list)
    • 1.1 定义
    • 1.2 独有功能
    • 1.3 公共功能
    • 1.4 列表练习代码
  • 2.元组

1.列表(list)

列表(list),是一个有序可变的容器,在里面可以存放多个不同类型的元素。

1.1 定义

user_list = ["云原生","大数据","云计算"]
number_list = [133,6622,1122,-1]
data_list = [1,True,"ab","中国","容器云"]
user_list = []
user_list.append("测试")
user_list.append(123)
user_list.append(True)
print(user_list) # ["测试",123,True]

不可变类型:字符串、布尔、整型(已最小,内部数据无法进行修改)

可变类型:列表(内部数据元素可以修改)

1.2 独有功能

Python中为所有的列表类型的数据提供了一批独有的功能。

在开始学习列表的独有功能之前,先来做一个字符串和列表的对比:

  • 字符串,不可变,即:创建好之后内部就无法修改。【独有功能都是新创建一份数据】

    name = "alone"
    data = name.upper()
    print(name) #alone
    print(data) #ALONE
    
  • 列表,可变,即:创建好之后内部元素可以修改。【独有功能基本上都是直接操作列表内部,不会创建新的一份数据】

    user_list = ["云原生","大数据"]
    user_list.append("测试环境")
    print(user_list)    #['云原生', '大数据', '测试环境']
    

列表中的常见独有功能如下:

  1. 追加,在原列表中尾部追加值。

    data_list = []v1 = input("请输入姓名:")
    data_list.append(v1)v2 = input("请输入手机号码:")
    data_list.append(v2)print(data_list)    #['云原生', '991540698']
    
    # 案例1
    user_list = []while True:user = input("请输入用户名(Q/q退出):")if user.upper() == "Q":breakuser_list.append(user)print(user_list)    #['云原生', '大数据', '云计算']
    
    # 案例2
    welcome = "欢迎使用NB游戏".center(30,'*')
    print(welcome)user_count = 0
    while True:count = input("请输入游戏人数:")if count.isdecimal():user_count = int(count)breakelse:print("格式输入错误,人数必须为整数。")
    message = "一共有{}人参加NB游戏。".format(user_count)
    print(message)user_name_list = []
    for i in range(1, user_count + 1):tips = "请输入玩家姓名({}/{}):".format(i, user_count)name = input(tips)user_name_list.append(name)
    print(user_name_list)
    
  2. 批量追加,将一个列表中的元素逐一添加另外一个列表。

    tools = ["云原生","大数据","云计算"]
    tools.extend([11,22,33])    # weapon中的值逐一追加到tools中
    print(tools)    #['云原生', '大数据', '云计算', 11, 22, 33]
    
    tools = ["云原生","大数据","云计算"]
    weapon = ["baidu","alibaba"]weapon.extend(tools)
    print(tools)    #['云原生', '大数据', '云计算']
    print(weapon)   #['baidu', 'alibaba', '云原生', '大数据', '云计算']
    
    # 等价于(扩展)
    weapon = ["baidu","alibaba"]
    for item in weapon:print(item)# 输出:
    baidu
    alibabatools = ["云原生","大数据","云计算"]
    weapon = ["baidu","alibaba"]
    for item in weapon:tools.append(item)
    print(tools)    #['云原生', '大数据', '云计算', 'baidu', 'alibaba']
    
  3. 插入,在原列表的指定索引位置插入值

    user_list = ["云原生","大数据","云计算"]
    user_list.insert(0,"测试")
    user_list.insert(2,"人工智能")
    print(user_list)    #['测试', '云原生', '人工智能', '大数据', '云计算']
    
    # 案例
    name_list = []
    while True:name = input("请输入购买火车票用户姓名(Q/q退出):")if name.upper() == "Q":breakif name.startswith("王"):    #出现在首位name_list.insert(0, name)else:name_list.append(name)
    print(name_list)    #['云原生', '大数据']
    
  4. 在原列表中根据值删除(从左到右找到第一个删除)【慎用,里面没有会报错】

    user_list = ["王宝强","陈羽凡","alone","贾乃亮","alone"]
    user_list.remove("alone")
    print(user_list)user_list = ["王宝强","陈羽凡","alone","贾乃亮","alone"]
    if "alone" in user_list:user_list.remove("alone")
    print(user_list)user_list = ["王宝强","陈羽凡","alone","贾乃亮","alone"]
    while True:if "alone" in user_list:user_list.remove("alone")else:break
    print(user_list)    #['王宝强', '陈羽凡', '贾乃亮']
    
    # 案例:自动抽奖程序
    import randomdata_list = ["iphone12", "鼠标", "键盘", "电脑", "亚索"]while data_list:name = input("自动抽奖程序,请输入自己的姓名:")# 随机从data_list抽取一个值出来value = random.choice(data_list)print("恭喜{},抽中{}.".format(name, value))data_list.remove(value)
    
  5. 在原列表中根据索引踢出某个元素(根据索引位置删除)

    user_list = ["王宝强","陈羽凡","alone","贾乃亮","alone"]
    #               0       1      2      3       4
    user_list.pop(1)
    print(user_list) #  ["王宝强","alone","贾乃亮","alone"]user_list.pop()
    print(user_list) # ["王宝强","alone","贾乃亮"]item = user_list.pop(1)
    print(item) # "alone"
    print(user_list) # ["王宝强","贾乃亮"]
    
    # 案例:排队买火车票# ["alone","linux","eric","nginx","docker","python"]
    user_queue = []while True:name = input("北京~上海火车票,购买请输入姓名排队(Q退出):")if name.upper() == "Q":breakuser_queue.append(name)ticket_count = 3
    for i in range(ticket_count):username = user_queue.pop(0)message = "恭喜{},购买火车票成功。".format(username)print(message)# user_queue = ["nginx","docker","python"]
    faild_user = "、".join(user_queue)
    faild_message = "非常抱歉,票已售完,以下几位用户请选择其他出行方式,名单:{}。".format(faild_user)
    print(faild_message)
    
  6. 清空原列表

    user_list = ["alone","linux","eric","nginx"]
    user_list.clear()
    print(user_list)    #[]
    
  7. 根据值获取索引(从左到右找到第一个删除)【慎用,找不到报错】

    user_list = ["王宝强","陈羽凡","alone","贾乃亮","alone"]
    #               0       1      2       3      4
    if "alone" in user_list:index = user_list.index("alone")print(index) # 2
    else:print("不存在")
    
  8. 列表元素排序

# 数字排序
num_list = [11, 22, 4, 5, 11, 99, 88]
print(num_list)
num_list.sort()  # 让num_list从小到大排序
num_list.sort(reverse=True)  # # 让num_list从大到小排序
print(num_list)
  1. 反转原列表
user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"]
user_list.reverse()print(user_list)

1.3 公共功能

  1. 运算符in包含
    由于列表内部是由多个元素组成,可以通过in来判断元素是否在列表中。
# 案例
user_list = ["alex","linux","eric","nginx","docker","python"]
if "alex" in user_list:print("在,把他删除")user_list.remove("alex")print(user_list)
else:print("不在")
# 输出结果:在,把他删除
# ['linux', 'eric', 'nginx', 'docker', 'python']# 案例
user_list = ["王宝强", "陈羽凡", "Alex", "贾乃亮", "Alex"]
if "Alex" in user_list:index = user_list.index("Alex")user_list.pop(index)print(user_list)    #['王宝强', '陈羽凡', '贾乃亮', 'Alex']# 案例:敏感词替换
text = input("请输入文本内容:") # 云原生技术不可取
forbidden_list = ["不","可","取"]
for item in forbidden_list:text = text.replace(item,"**")
print(text)注意:列表检查元素是否存在时,是采用逐一比较的方式,效率会比较低
  1. 获取长度
user_list = ["范德彪","刘华强",'尼古拉斯赵四']
print( len(user_list) ) #3
  1. 索引,一个元素的操作
# 读
user_list = ["范德彪","刘华强",'尼古拉斯赵四']
print( user_list[0] )
print( user_list[2] )
print( user_list[3] ) # 报错# 改
user_list = ["范德彪","刘华强",'尼古拉斯赵四']
user_list[0] = "云原生"
print(user_list) #['云原生', '刘华强', '尼古拉斯赵四']# 删
user_list = ["范德彪","刘华强",'尼古拉斯赵四']
# del user_list[1]
# print(user_list)    #['范德彪', '尼古拉斯赵四']user_list.remove("刘华强")
#ele = user_list.pop(1)
print(user_list)    #['范德彪', '尼古拉斯赵四']注意:超出索引范围会报错。
提示:由于字符串是不可变类型,所以他只有索引读的功能,而列表可以进行 读、改、删
  1. for循环
user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"]
for item in user_list:print(item)
---------------------------------------------------------------------------
user_list = ["范德彪", "刘华强", '尼古拉斯赵四', "宋小宝", "刘能"]for index in range(len(user_list)):item = user_list[index]print(item)范德彪
刘华强
尼古拉斯赵四
宋小宝
刘能切记,循环的过程中对数据进行删除会踩坑
# 错误方式, 有坑,结果不是你想要的。
user_list = ["刘的话", "范德彪", "刘华强", '刘尼古拉斯赵四', "宋小宝", "刘能"]
for item in user_list:if item.startswith("刘"):user_list.remove(item)print(user_list)    #['范德彪', '刘尼古拉斯赵四', '宋小宝']# 正确方式,倒着删除。
user_list = ["刘的话", "范德彪", "刘华强", '刘尼古拉斯赵四', "宋小宝", "刘能"]
for index in range(len(user_list) - 1, -1, -1):item = user_list[index]if item.startswith("刘"):user_list.remove(item)
print(user_list)    #['范德彪', '宋小宝']
  1. 转换
    int、bool无法转换成列表;
    str
name = "云原生"data = list(name)   #['云', '原', '生']
print(data)超前;
v1 = (11,22,33,44) # 元组
vv1 = list(v1)     # 列表 [11,22,33,44]
print(vv1)v2 = {"alex","eric","linux"} # 集合
vv2 = list(v2) # 列表 ["alex","eric","linux"]
print(vv2)
  1. 嵌套
user_list = []
while True:user = input("请输入用户名(Q退出):")if user.upper() == "Q":breakpwd = input("请输入密码:")data = [user, pwd]user_list.append(data)print(user_list)  # [['linux', 'admin'], ['cloud', 'w'], ['frr', 'w']]

1.4 列表练习代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
@Author: yinwu
@Time: 2021年08月02日 15:24
@FileName: 列表练习代码.py
"""
li = ["linux", "Docker", "Rancher", "Nginx", "云原生"]# 计算列表的长度并输出
# print(len(li))  #5#列表中追加元素"seven",并输出添加后的列表
li.append("seven")
print(li)   #['linux', 'Docker', 'Rancher', 'Nginx', '云原生', 'seven']#请在列表的第1个索引位置插入元素"Tony",并输出添加后的列表
li.insert(1,"Tony")
print(li)#请修改列表第2个索引位置的元素为"Kelly",并输出修改后的列表
li.insert(2,"Kelly")
print(li)#请将列表的第3个位置的值改成 "大数据",并输出修改后的列表
li[3] = "大数据"
print(li)#请将列表 `data=[1,"a",3,4,"heart"]` 的每一个元素追加到列表 `li` 中,并输出添加后的列表
data=[1,"a",3,4,"heart"]
li.extend(data)
print(li)   #['linux', 'Tony', 'Kelly', '大数据', 'Rancher', 'Nginx', '云原生', 1, 'a', 3, 4, 'heart']#请将字符串 `s = "qwert"`的每一个元素到列表 `li` 中。
s = "qwert"
li.extend(s)
print(li)   #['linux', 'Tony', 'Kelly', '大数据', 'Rancher', 'Nginx', '云原生', 1, 'a', 3, 4, 'heart', 'q', 'w', 'e', 'r', 't']#请删除列表中的元素"Nginx",并输出添加后的列表
li.remove("Nginx")
print(li)#请删除列表中的第2个元素,并输出删除元素后的列表
# del li[1]
ele = li.pop(1) #可拿到删除的值
print(ele)
print(li)# 请删除列表中的第2至第4个元素,并输出删除元素后的列表
del li[2:4]
print(li) #['linux', 'Kelly', '云原生', 'seven', 1, 'a', 3, 4, 'heart', 'q', 'w', 'e', 'r', 't']#请用代码实现循环输出元素和值:users = ["linux", "Docker", "Rancher"] ,如
users = ["linux", "Docker", "Rancher"]
for index in range(len(users)):print(index,users[index])#如有变量 goods = ['汽车','飞机','火箭'] 提示用户可供选择的商品:
goods = ['汽车','飞机','火箭']
for index in range(len(goods)):print(index, goods[index])index = input("请输入序号:")
index = int(index)
text = goods[index]
message = "您选择的商品是{}".format(text)
print(message)# 将以下车牌中所有 `京 `的车牌搞到一个列表中,并输出京牌车辆的数量。
result = []
data = ["京1231", "冀8899", "京166631", "晋989"]
for item in data:if not item.startswith("京"):continueresult.append(item)count = len(result)
print( "京牌的数量为:{}".format(count) )

2.元组

元组(tuple),是一个有序不可变的容器,在里面可以存放多个不同类型的元素。
元组的元素不能被替换,但元组的元素如果是可变类型,可变类型内部是可以修改的。

# 实现:用户登录案例
user_list = [ ("linux","123"),("docker","0266"),("k8s","6666")]
print("登录程序")
username = input("请输入用户名:")
password = input("请输入密码:")
is_success = False
for item in user_list:# item = ("linux","123") ("docker","0266")if username == item[0] and password == item[1]:is_success = Truebreak
if is_success:print("登录成功")
else:print("登录失败")# 花色列表
color_list = ["红桃", "黑桃", "方片", "梅花"]# 牌值
num_list = []  # 1 2 3 4 5...11、12、13
for num in range(1, 14):num_list.append(num)result = []
# 请根据以上的花色和牌值创建一副扑克牌(排除大小王)
# 最终result的结果格式为: [ ("红桃",1), ("红桃",2) ... ]
for color in color_list:# print(color) # 红桃for num in num_list:item = (color, num,)result.append(item)
print(result)

Python3开发 语法(四)相关推荐

  1. Python3开发 语法(五)

    文章目录 1.集合(set) 1.1 定义 1.2 代码 对比和嵌套 2.None类型 3.字典(dict) 获取值 字典独有功能代码 转换 存储原理 嵌套 字典代码练习 4.浮点型(float) 1 ...

  2. Python3开发 语法(三)

    文章目录 字符串公共功能 转换 其他 1 字符串不可被修改 2 代码示例 字符串公共功能 相加:字符串 + 字符串 v1 = "tencent" + "云yuanshen ...

  3. Python3 基础语法

    Python3 基础语法 编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -*- coding: ...

  4. python从0开始学编程第四天第3讲_从零开始学习PYTHON3讲义(四)让程序更友好

    <从零开始PYTHON3>第四讲 先看看上一讲的练习答案. 程序完成的是功能,功能来自于"程序需求"("需求"这个词忘记了什么意思的去复习一下第二讲 ...

  5. Python3 基础语法(笔记1)

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 巩固Python,记录关键知识,便于温故知新! 目录 1.标识符 2.多行注释 3.行与缩进 4.多行语句 5.字符串( ...

  6. Python基础--Python3基础语法

    Python3 基础语法 编码 默认情况下,Python3源码文件以UTF-8编码,所有字符串都是Unicode字符串.当然也可以为源码文件指定不同的编码,例如: # -*- coding: cp-1 ...

  7. 【Python学习笔记】3. Python3 基础语法

    前言 本文介绍Python3 基础语法. 编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -*- ...

  8. python3 基础语法分享

    python3 基础语法 编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串.当然你也可以为源码文件指定不同的编码: # -*- coding: ...

  9. Python3 基础语法介绍

    Python3 基础语法 编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串.当然你也可以为源码文件指定不同的编码: # -*- coding:  ...

  10. 安卓python3开发环境搭建,Python3开发环境搭建简明教程

    Python3开发环境建立简明教程 ★ 「锐玩道」原文链接 " 剁手得很决绝的今日 那就来份平平无奇的教程吧 (作为 Scrapy 系列的开篇) Python 环境设备 下载 Python ...

最新文章

  1. 面试题:css之品字布局?
  2. 写给新手程序员的一封信
  3. springboot启动不了_七款高Star的开源SpringBoot扩展,助你的代码水平更上一层楼
  4. Java-gt;Android并发编程引气入门篇
  5. sizeof你真的弄明白了吗?来看看这个例子
  6. 【暑假训练 7.10】 codevs 2492 上帝造题的七分钟2
  7. ginkgo spi 错误_开发SPI时不要犯这个错误
  8. 谷歌将停止对32位Linux系统Chrome浏览器支持
  9. 【repost】Javascript操作DOM常用API总结
  10. 前台传到后台类型数组对象
  11. Linux添加1G虚拟内存,Linux下怎样增加虚拟内存
  12. 读取SqlServer表名及结构
  13. 强大的Common类库
  14. 路径规划算法:A*算法 - 附代码
  15. php正则说明,php正则说明
  16. 苹方字体 for linux,苹果苹方字体
  17. 开发老铁们,就参考这个图灵畅销新书书单加购!
  18. 中兴云桌面服务器,中兴云桌面解决方案.pdf
  19. SecureCRT 过期
  20. 什么是有监督学习?看这里。

热门文章

  1. office转换pdf [doc,docx,xls,xlsx]
  2. linux怎么查看hwaddr_Linux 查看网卡的MAC地址
  3. springboot的开发流程
  4. 小白的python学习实录 基础篇(八)面向对象
  5. lpx寒假作业案例10
  6. java通过经纬度查询位置(调用百度地图API)
  7. mysql 基础 红黑联盟_[转载]mysql日期加减 – mysql数据库栏目 – 红黑联盟
  8. 使用Python实现消息轰炸
  9. 关于使用SpringBoot导出Pdf(itextpdf)
  10. 【Social listening实操】从社交媒体传播和文本挖掘角度解读《欢乐颂2》