Python每日笔记04

本次内容:列表+元组

目录

>> Python每日笔记—Day01 <<
>> Python每日笔记—Day02 <<
>> Python每日笔记—Day03 <<
>> Python每日笔记—Day04 <<
>> Python每日笔记—Day05 <<
>> Python每日笔记—Day06 <<
>> Python每日笔记—Day07 <<
>> Python每日笔记—Day08 <<
>> Python每日笔记—Day09 <<

一、列表

序列是python中最基本的一种数据结构。序列中的每一个值都有它对应的位置值,称为索引。
从左到右,第一个值的索引为0,依次增加,类比数组。
列表是最常用的python数据类型。用[]表示,用','隔开
  1. 列表的创建
# 创建一个空列表
list1 = []
list2 = list()
print(len(list2))
list3 = [1, 2, 3]
list4 = [4, 5, 6]
  1. 操作符+和*
    in成员运算符
# *是倍数
print(list3 + list4)    # [1, 2, 3, 4, 5, 6]
# +是拼接
print(list3 * 2)    # [1, 2, 3, 1, 2, 3]
list5 = list3 + list4
flag = 3 in list5   # 成员运算符
print(flag)
  1. 遍历列表的元素
list5 = [1, 2, 3, 1, 2, 3]
# 访问列表中的元素,可以使用索引访问
print(list5[5])
# 遍历list中的元素:方法一
for i in range(len(list5)):
    print(list5[i])
# 遍历list中的元素:方法二
# list本身就是一个range序列,可以直接遍历不使用索引访问
for li in list5:
    print(li)
  1. 切片方法(类似字符串)
'''
    list的切片测试
    [:m]
    [m:n]
    [m:n:s]
'''
list5 = [1, 2, 3, 1, 2, 3]
print(list5[:3], end=" ")   # 前三位
print(list5[1:5], end=" ")  # 2-5位
print(list5[-5:-1:2], end=" ")  # -5到-1 每次递增2
  1. 列表中的元素是否能被修改? 可以
    id不可更改,可以使用索引修改列表值
list5 = [1, 2, 3, 1, 2, 3]
print(id(list5))
list5[1] = 9 	
print(list5)	# 1, 9, 3, 1, 2, 3
print(id(list5))
  1. list列表的增删改操作
    增加:append() 和 insert()
    删除:move() 、 del操作符、pop()方法
    修改:索引修改
# 列表元素list1 = [1, 2, 3]
list2 = [4, 5, 6]
list1.append(8)
print(list1)    # [1, 2, 3, 8]
list1.append(list2)     # 将整个list2作为一个object追加到list1后面
print(list1)    # [1, 2, 3, 8, [4, 5, 6]]

# 删除列表中的元素
list1 = [1, 2, 3]
del list1[1]
print(list1)    # [1, 3]

# 列表的添加方法   extend()
list3 = ['a', 'b', 'c']
list3.extend(list1)
print(list3)    # ['a', 'b', 'c', 1, 3]

# 列表的插入方法   insert()
list3 = ['a', 'b', 'c']
list3.insert(2, 'g')    # 在索引为2,第三个位置插入g
print(list3)    # ['a', 'b', 'g', 'c']
list3.insert(1, "天气很好,心情不错")    # 在索引为1,第二个位置插入"天气很好,心情不错"
print(list3)    # ['a', '天气很好,心情不错', 'b', 'g', 'c']

# list列表的删除方法
list1 = [1, 2, 3, 4]
list1.remove(2)  # remove(object)object指的是要删除的列表元素,而不是索引
# list1.remove(9)  # remove的参数不在列表中,会报异常
print(list1)

# 删除列表中的元素
list2 = ['a', 'b', 'c', 'd']
list2.pop(-1)   # 参数为索引值
print(list2)
  1. 其他常用的内置函数
# index : 返回的是某元素第一次出现的索引位置
list1 = ["abc", "apple", "append", "abc"]
print(list1.index('abc'))   # 0,第一次'abc'出现的位置

# 计算元素出现的次数 count()
list1 = ["abc", "apple", "append", "abc"]
print(list1.count('abc'))   # 2

# 反转方法
list1 = ["abc", "apple", "append", "abc"]
list1.reverse()
print(list1)
list1 = ["上", "海", "自", "来", "水", "来", "自", "海", "上"]
str1 = str(list1)
list1.reverse()
str2 = str(list1)
if str1 == str2:
    print("是回文")

# 快速排序
list1 = [10, 12, 43, 14, 7]
list1.sort()
print(list1)
  1. list的复制方法和清空方法
    复制有两种,一种浅复制copy(),一种深复制=
    清空使用clear()方法
list1 = [1, 2, 3, 4, 5]

# 列表的复制
'赋值运算符=,两个list所指的地址一样,如果修改其中一个,另一个也受影响 '
list2 = list1
print(id(list2), id(list1))
'copy方法,两个list所指的地址不一样,互相不影响'
list2 = list1.copy()
print(id(list2), id(list1))

# 列表元素的清空
list1.clear()
print(list1)    # []
  1. List名片管理系统案例
    这里直接给出代码案例:
# 使用列表来存储名片对象,通过索引来进行增删改查
l1 = [{
     'name': '张三', 'age': 18, 'height': 172}, {
     'name': '张三十一', 'age': 28, 'height': 188}]
while True:
        print('*'*60)
        print('====================欢迎进入名片管理系统====================')
        print('1-查看名片')
        print('2-添加名片')
        print('3-修改名片')
        print('4-删除名片')
        print('5-退出系统')
        choice = input("请选择:")  # input输入的是字符串
        '''名片内容:
            姓名: 张三
            年龄: 19
            身高: 172
            l1 = [{'name':'张三', 'age':18, 'heigth':172}, {'name':'张三十一', 'age':28, 'height':188}]
        '''
        if choice == '1':
            i = 0
            while i < len(l1):
                print('%s->姓名:%s|年龄:%s|:身高:%s' % (i, l1[i]['name'], l1[i]['age'], l1[i]['height']))
                i += 1
            else:
                print("当前没有用户信息")
        elif choice == '2':
            name = input("name:").strip()
            age = input("age:").strip()
            height = input("height:").strip()
            info = {
     'name': name, 'age': age, 'height': height}
            # 将info添加到列表 l1 中
            l1.append(info)
            print("添加成功")
        elif choice == '3':
            mod = int(input("请选择要修改的名片:"))
            name1 = input("name:").strip()
            age1 = input("age:").strip()
            height1 = input("height:").strip()
            if name1:
                l1[mod]['name'] = name1
            if age1:
                l1[mod]['age'] = age1
            if height1:
                l1[mod]['height'] = height1
            print("修改成功")
        elif choice == '4':
            index = int(input("请输入要删除的序号"))
            l1.remove(l1[index])
            print("删除成功")
        elif choice == '5':
            print("退出系统")
            break
        else:
            print('输入有误,请重新输入')

二、元组

* python中的元组和列表比较类似,不同之处在于元组的元素不能修改!
* 元组使用()表示,列表使用[]表示
* 元组与字符串类似,下标索引都是从0开始,可以进行截取
  1. 创建元组
tuple1 = (50, 'True', False, [1, 3], (3, 4), 50)
# tuple[0] = 90 元组的元素内容不能被直接修改
print(tuple1)
print(type(tuple1))
  1. 创建两个元组,内容分别为(1,2,3),(4,5,6)
    测试 两个元组之间通过 + * 之后运算的结果
t1 = (1, 2, 3)
t2 = (4, 5, 6)
print(t1 + t2)  # (1, 2, 3, 4, 5, 6)
print(t1 * 2)   # (1, 2, 3, 1, 2, 3)
  1. 常用内置函数
t1 = (1, 2, 3)
t2 = (4, 5, 6)
# 求最大最小值函数,max和min
print(min(t1))  # 1
print(max(t2))  # 6

# index查找 和 count计数
tuple2 = (1, 1, 2, 31, 4, 2, 6, 2)
print(tuple2.count(2))  # 3
print(tuple2.index(2))  # 2

如果这篇文章对你有帮助,点个赞呗

你可能感兴趣的:(python,列表,元组)