python基础(一)-day04

04. 万恶之源-基本数据类型(list,tuple)

本节主要内容:

  1. 列列表
  1. 列列表的增删改查
  1. 列列表的嵌套
  1. 元组和元组嵌套
  1. range
扫描二维码关注公众号,回复: 7799481 查看本文章

 一. 列列表 1.1 列列表的介绍

列列表是python的基础数据类型之 一 ,其他编程语 言也有类似的数据类型. 比如JS中的数组, java中的数组等等. 它是以[ ]括起来, 每个元素 用' , '隔开 而且可以存放各种数据类型:

lst = [1, '哈哈', "吼吼", [1,8,0,"百度"], ("我","叫", "元", "组"), "abc", {"我叫":"dict字典"},{"我叫集合","集合"}]

列列表相比于字符串串. 不仅可以存放不同的数据类型.  而且可以存放 大量量的数据. 32位python可以存放: 536870912个元素, 64位可以存放: 1152921504606846975个元素. 而且列列表是有序的(按照你保存的顺序),有索引, 可以切 片 方便便取值.

2.2 列列表的索引和切片

列列表和字符串串 一样也拥有索引:

lst = ["麻花藤", "王剑林林", " 马芸", "周鸿医", "向华强"] print(lst[0]) # 获取第 一个元素 print(lst[1])

print(lst[2])

lst[3] = "流动强" # 注意. 列列表是可以发 生改变的. 这 里里和字符串串不不 一样 print(lst) # ['麻花藤', '王剑林林', ' 马芸', '流动强', '向华强']

s0 = "向华强"

s0[1] = "美" # TypeError: 'str' object does not support item assignment 不不允许改变 print(s0)

列列表的切片:

lst = ["麻花藤",

"王剑林林", " 马芸", "周鸿医", "向华强"]

print(lst[0:3])

# ['麻花藤', '王剑林林', ' 马芸']

print(lst[:3])

# ['麻花藤', '王剑林林', ' 马芸']

print(lst[1::2])

# ['王剑林林', '周鸿医'] 也有步 长

print(lst[2::-1])

# [' 马芸', '王剑林林', '麻花藤']

也可以倒着取

print(lst[-1:-3:-2])

# 倒着带步 长

 二. 列列表的增删改查

  1. 增, 注意, list和str是不 一样的. lst可以发 生改变. 所以直接就在原来的对象上进 行行了了操

lst = ["麻花藤", "林林俊杰", "周润发", "周芷若"] print(lst)

lst.append("wusir") print(lst)

lst = [] while True:

content = input("请输 入你要录 入的员 工信息, 输 入Q退出:") if content.upper() == 'Q':

break lst.append(content)

print(lst)

lst = ["麻花藤", "张德忠", "孔德福"] lst.insert(1, "刘德华") # 在1的位置插 入刘德华. 原来的元素向后移动 一位 print(lst)

# 迭代添加

lst = ["王志 文", "张 一 山", "苦海  无涯"] lst.extend(["麻花藤", "麻花不不疼"]) print(lst)

2.  删除

pop, remove, clear, del

lst = ["麻花藤", "王剑林林", "李李嘉诚", "王富贵"] print(lst)

deleted = lst.pop() # 删除最后 一个print("被删除的", deleted)

print(lst)

el = lst.pop(2)                        # 删除2号元素

print(el)

print(lst)

lst.remove("麻花藤")                 # 删除指定元素

print(lst)

# lst.remove("哈哈")                     # 删除不不存在的元素会报错

# # print(lst)

lst.clear()                      # 清空list

print(lst)

# 切 片删除

del lst[1:3]

print(lst)

3.  修改

索引切片修改

# 修改

lst = ["太 白", "太 黑", "五 色", "银王", " 日天"] lst[1] = "太污" # 把1号元素修改成太污 print(lst)

lst[1:4:3] = ["麻花藤", "哇靠"]                                 # 切 片修改也OK. 如果步 长不不是1, 要注意. 元素的个

print(lst)

lst[1:4] = ["李李嘉诚个 龟 儿 子"] # 如果切 片没有步 长或者步 长是1. 则不不 用关 心个数 print(lst)

4.  查询, 列列表是 一个可迭代对象, 所以可以进 行行for循环

for     el in lst: print(el)

5.  其他操作

lst = ["太 白", "太 黑", "五 色", "银王", " 日天", "太 白"]

c = lst.count("太 白")                        # 查询太 白出现的次数

print(c)

lst = [1, 11, 22, 2]

lst.sort()                                  # 排序. 默认升序

print(lst)

lst.sort(reverse=True)                    # 降序

print(lst)

lst = ["太 白", "太 黑", "五 色", "银王", " 日天", "太 白"] print(lst)

lst.reverse() print(lst)

l = len(lst)                     # 列列表的 长度

print(l)

三. 列列表的嵌套采 用降维操作. 一层 一层的看就好.

lst = [1, "太 白", "wusir", [" 马 虎疼", ["可 口可乐"], "王剑林林"]]

#    找到wusir print(lst[2])

#    找到太 白和wusir print(lst[1:3])

#    找到太 白的 白字 print(lst[1][1])

#    将wusir拿到. 然后 首字 母 大写. 再扔回去 s = lst[2]

s = s.capitalize() lst[2] = s print(lst)

#    简写

lst[2] = lst[2].capitalize() print(lst)

# 把太 白换成太 黑

lst[1] = lst[1].replace(" 白", " 黑") print(lst)

# 把 马 虎疼换成 马化疼 lst[3][0] = lst[3][0].replace(" 虎", "化") print(lst[3][0])

lst[3][1].append("雪碧") print(lst)

四. 元组和元组嵌套

元组: 俗称不可变的列列表. 又被成为只读列列表, 元组也是python的基本数据类型之 一,  用 小括号括起来,  里里 面可以放任何数据类型的数据, 查询可以. 循环也可以. 切片也可以. 但就是不能改.

tu = (1, "太 白", "李李 白", "太 黑", "怎么 黑")

print(tu)

print(tu[0]) print(tu[2])

print(tu[2:5])                 # 切 片之后还是元组

#    for循环遍历元组 for el in tu:

print(el)

#    尝试修改元组

#    tu[1] = " 马 虎疼"   # 报错 'tuple' object does not support item assignment

tu = (1, "哈哈", [], "呵呵")

# tu[2] = ["fdsaf"]                       # 这么改不不 行行

tu[2].append("麻花藤")                      # 可以改了了. 没报错

tu[2].append("王剑林林")

print(tu)

关于不可变, 注意: 这 里里元组的不可变的意思是 子元素不可变.  而 子元素内部的 子元素是可以变, 这取决于 子元素是否是可变对象.

元组中如果只有 一个元素.  一定要添加 一个逗号, 否则就不是元组

tu = (1,) print(type(tu))

元组也有count(), index(), len()等 方法. 可以 自 己测试使 用

五. range range可以帮我们获取到 一组数据. 通过for循环能够获取到这些数据.

for    num in range(10): print(num)

for    num in range(1, 10, 2): print(num)

for    num in range(10, 1, -2): # 反着来, 和切 片 一样 print(num)

# lst = [1, "周杰伦", True, False, ["可口可乐", "雪碧", "芬达"] ]
# print(lst)

# lst = ["大阳哥", "赵明杰", "UZI", "赛利亚", "克伦特", "梅西", "哈登"]
# print(lst[3])
# print(lst[1:3])
# print(lst[-1::-2]) # -1 - 从右往左. 1 : 一个一个取

'''
1. list(增删改查)

列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开
列表和字符串一样.也有索引和切片
常用的功能:
1. 增: append() 里面元素只能加一个,extend可以加多个
2. 删:remove()
3. 改: 索引修改
4. 查: for循环
常用方法:
1. len()
2. count()
3. sort() 排序
'''

# 1. 列表的增加
lst = ["周杰伦", "王力宏", "周润发"]
# lst.append("伍佰") # 向列表中添加一个元素, 元素放在末尾. 把一个元素追加到列表的末尾
# print(lst)
# lst.append("周星星",'王石')# append 里面只能加一个元素
# print(lst)#所以会报错
# lst.insert(1, "马化腾") # 把元素插入到指定位置. 元素的移动
# print(lst)
# lst.extend('马化腾')# 这种是可迭代对象个3个,马,化,腾
# print(lst)
# lst.extend(["马云", "王健林", "李嘉诚"]) # 迭代添加,extend可以添加多个。
# print(lst)

# lst = []
# while 1:
# name = input("请输入学生的名字")
# if name.upper() == "Q":
# break
# else:
# lst.append(name) # 把名字添加到列表
#
# print(lst)

# 删除
# lst = ["盖伦", "大白梨", "提莫", "大白梨"]

# 1. pop() 根据索引删
# e = lst.pop() # 返回删除的元素, 删除最后一个
# print(e)
# print(lst)
# e = lst.pop(1) # 根据给出的索引进行删除
# print(e)
# print(lst)

# 2. remove(元素)# 根据你输入的元素进行删,如果元素不存在会报错
# lst.remove("大白梨")
# lst.remove("大白梨")
# print(lst)

# 3. del 删除 切片删除 delete
# del lst[1:]
# print(lst)

# 4. clear 清空
# lst.clear()
# print(lst)

# by luffycity.com

# lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"]

# 在屁股后面添加
# lst.append("黄宏") # 在原有的基础上进行的操作
# # 在xxx位置插入xxxx内容
# lst.insert(1,"王力宏")
# lst.extend(["麻花藤", "马云", "王健林", "许家印"]) # 迭代添加
# print(lst)

# 删除
# data = lst.pop(2) # 返回被删除的数据
# print(data)
# print(lst)

# lst.remove("赵四") # 删除元素.
# lst.remove("刘能") # 如果不存在会报错

# 切片删除
# del lst[1:3]

# 清空
# lst.clear()
# print(lst)

# lst = ["王者农药", "魔兽世界", "DNF", "逆水寒", "反恐精英"]
# # lst[0] = "扫雷"
# # print(lst)
# # lst[3] = "吃鸡"
#
# # lst[1:3] = ["跑跑卡丁车"] # 先删除后添加
# # lst[1::2] = ["QQ华夏","QQ三国"] # 切片修改的时候. 如果步长不是1. 注意元素的个数
# print(lst)

lst = ["锅包肉", "好人家火锅", "巫山烤鱼", "清水煮白菜", "烤鸭"]
for el in lst: # element(元素)
print(el)


# 修改
# 索引修改
# lst = ["太白", "五色", "银王", "日天"]
# lst[0] = "太黑"
# print(lst)
# lst[2] = "银角大王"
# print(lst)

# 切片修改
# lst[1:3] = "马化腾" # 迭代修改
# print(lst)
# lst[1:3] = ["周杰伦", "他媳妇", "王力宏媳妇"]
# print(lst)

# 查询
# lst = ["舒克贝塔", "黑猫警长", "熊大熊二", "葫芦娃", "吴佩琪"]
# for el in lst: # element
# print(el)

# 常用操作
# lst = ["王尼玛", "我记着你", "伟哥", "放学天台见","王尼玛", "王尼玛"]
# print(len(lst))
# print(lst.count("王尼玛"))

lst = [1, 9, 18, 2 , 34, 88, 7, 9]
# lst = ["2王尼玛", "马化腾", "1马云", "马云云", "阿里巴巴", "1王尼玛"]
lst.sort() # 升序
lst.sort(reverse=True) # 倒序
print(lst)

#列表嵌套
lst = ["alex", "gay","wusir",["范冰冰","李冰冰",[1, "火锅", "ritian", "凤爪"],"王冰冰"]]
# print(lst[3][2][1]) # 火锅
lst[3][2][2] = lst[3][2][2].upper()
print(lst)

lst[3][2][0] = lst[3][2][0] + 99
print(lst)

lst = [1, "太白", "wusir", ["麻花疼", ["可口可乐"], "王剑林"]]

# print(lst[3][1][0])
# lst[3][1].append("芬达")
# print(lst)
lst[2] = lst[2].capitalize()
print(lst)

lst[1] = lst[1].replace("白", "黑")
print(lst)

#sort 升序
# lst = [1,5,3,4,3,2,44,3,2,22]
# lst.sort(reverse=True) # 排序. 默认升序, reverse=True 降序
# print(lst)

# lst = ['晓雪',"小茹", "小花","晓梅"]
# # lst.reverse() # 翻转 备注:这个reverse是反转跟上面sort里面的不一样
# # print(lst)
#
# print(len(lst))

# print((1+3)*5)
# print((3))
# tu = (3, ) # 元组中如果只有一个元素. 需要在括号里写一个,
# tu = tuple() # 空元组
# print(type(tu))

# tu = ("人民币", "美元", "英镑", "欧元")
# tu.append("哈哈")
# tu[0] = "日元" # 不予许修改
# del tu[2] # 删除也不行

# print(tu[2]) # 索引可以用
# print(tu[::2])

# for el in tu:
# print(el)

# 元组的第一层是不能进行赋值的. 内部元素是没有要求
# tu = (1, "哈喽", "how are you?", "alex", ["alex"])
# tu[3].upper()
# print(tu)

# range()是一个可迭代对象
# 1. range(n) 0 -> n-1
# for i in range(10):
# print(i)
# 2. range(m,n) m -> n-1
# for i in range(1,10):
# print(i)
# 3. range(m,n,q) m -> n-1 每q个取一个
# for i in range(1,10,3):
# print(i)

# for i in range(100, 90, -1):
# print(i)
# 0 1 2 3 4 5
lst = ["砂锅", "馒头", "盖浇饭", "刀削面", "大麻花", "大煎饼"]
# # 获取到列表的索引. 拿到索引之后. 可以拿到元素
for i in range(lst.__len__()):#或者len(lst) 都可以用
print(i) # i就是lst的索引
print(lst[i])
for el in lst:
print(el)

猜你喜欢

转载自www.cnblogs.com/Selbst/p/11826887.html
今日推荐