01python列表

1.字符串编码集

GBK 汉字占两个字节,简体中文

UTF-8 统一编码,汉字占三个字节

# 使用内置函数 chr 和 ord 查看数字和字符对应关系

print(ord('a')) # 97
print(chr(97))  # a

2.格式化打印字符串

# 可以使用 % 占位符来格式化字符串
name = 'zhangsan'
age = 18
# 大家好,我的名字是 zhangsan , 18 岁了
print('大家好,我的名字是',name,',',age,'岁了')
# 我的名字是zhangsan,今年18岁了
print('我的名字是%s,今年%d岁了'%(name,age))
# %s --> 字符
# %d --> 整数
# %nd --> 显示 n 位,不够用空格补全
# %-nd --> 显示 n 位,不够在右边用空格补全
# %0nd --> 显示 n 位,不够用 0 补全
# %f --> 浮点数
# %.nf --> 保留小数点后n位
# %x --> 用十六进制输出
# %% --> 输出一个 %
# 字符串的format方法
name = 'tom'
age = 20
print('我是{},今年{}岁了'.format(name,age))
# 我是tom,今年20岁了

3.列表

  1. 列表添加元素

    # 1.列表添加元素 append insert extend
    
    name1 = ['tom','jack','aov']
    
    name1.append('jerry')
    print(name1)
    # ['tom', 'jack', 'aov', 'jerry']
    
    name1.insert(1,'lisi')
    print(name1)
    # ['tom', 'lisi', 'jack', 'aov', 'jerry']
    
    name2 = ['aaa','bbb','ccc']
    name1.extend(name2)
    print(name1)
    # ['tom', 'lisi', 'jack', 'aov', 'jerry', 'aaa', 'bbb', 'ccc']
    
  2. 删除元素

    # 2.列表删除元素 clear remove pop
    # pop 返回的是被删除的数据,可以按照索引指定
    master = ['aaa','bbb','ccc','ddd','eee']
    master.pop()
    print(master)
    # ['aaa', 'bbb', 'ccc', 'ddd']
    
    master.remove('bbb')
    print(master)
    # ['aaa', 'ccc', 'ddd']
    
    # del 也可以删除
    del master[2]
    print(master)
    # ['aaa', 'ccc']
    
    # 清空列表
    master.clear()
    print(master)
    # []
    
  3. 查询元素

    # 3.列表查询元素
    tanks = ['亚瑟','廉颇','项羽','吕布','狂铁']
    print(tanks.index('项羽')) # 2
    print(tanks.count('廉颇')) # 1
    
  4. 修改元素

    # 4,修改元素
    # 使用下标修改
    tanks = ['亚瑟','廉颇','项羽','吕布','狂铁']
    tanks[4] = '程咬金'
    print(tanks) # ['亚瑟', '廉颇', '项羽', '吕布', '程咬金']
    
  5. 列表的循环遍历

    # # 列表的循环遍历 while  for...in
    killers = ['李白','阿珂','兰陵王','韩信','花木兰']
    
    # for...in 通过调用 next() 方法,查找下一个数据
    for k in killers:
        print(k)
    
    i = 0
    while i < len(killers):
        print(killers[i])
        i += 1
    
  6. 交换两个变量的值

    a = 10
    b = 20
    
    # 使用三个变量实现
    c = a
    a = b
    b = c
    print(a) # 20
    print(b) # 10
    
    # 使用运算符实现,只能是数字
    a = a+b
    b = a-b
    a = a-b
    print(a) # 10
    print(b) # 20
    
    # 使用异或运算符
    a = a^b
    b = a^b
    a = a^b
    print(a) # 20
    print(b) # 10
    
    # python 特有
    a,b = b,a
    print(a) # 10
    print(b) # 20
    
  7. 冒泡排序

    nums = [8,3,4,13,1,6,45,22]
    i = 0
    while i < len(nums)-1:
        n = 0
        while n < len(nums)-1:
            if nums[n] > nums[n+1]:
                nums[n],nums[n+1] = nums[n+1],nums[n]
            n += 1
        i += 1
    print(nums)
    
  8. 列表的排序和反转

    nums = [6,5,3,1,8,7,2,4]
    # 调用 sort()方法,直接对原有数据进行排序
    nums.sort(reverse=True)
    print(nums)
    
    # 内置函数,生成新列表
    x = sorted(nums)
    print(x)
    
    names = ['aaa','bbb','ccc']
    names.reverse()
    print(names) # ['ccc', 'bbb', 'aaa']
    
  9. 可变数据类型和不可变数据类型

    # 不可变数据类型:字符串,数字,元组
    # 可变数据类型:列表,字典,集合
    # 不可变数据类型,如果改值,内存地址会发生变化
    # 可变数据类型:如果修改值,内存地址不会发生变化
    # 列表的复制
    a = 12
    b = a
    a = 10
    print(b) # 12
    
    nums1 = [1,2,3,4,5]
    nums2 = nums1
    nums1[1] = 10
    print(nums2) # [1, 10, 3, 4, 5]
    
  10. 列表的浅复制

    nums1 = [1,2,3,4,5]
    nums2 = nums1 # 指向了同一块内存空间,会相互影响
    nums1[0] = 100
    print(nums2) # [100, 2, 3, 4, 5]
    
    # 调用 copy()方法,会复制一个新列表,指向不同的内存空间
    nums3 = nums1.copy()
    nums1.append(300)
    print(nums3) # [100, 2, 3, 4, 5]
    # 还可以使用copy模块,等价于 nums1.copy(),都是浅拷贝
    import copy
    nums4 = copy.copy(nums1)
    nums1[2] = 500
    print(nums4) # [100, 2, 3, 4, 5, 300]
    
    # 切片也是浅拷贝
    x = [1,2,3,4,5,6]
    y = x[::]
    print(y) # [1, 2, 3, 4, 5, 6]
    x.clear()
    print(y) # [1, 2, 3, 4, 5, 6]
    
  11. 移除空字符串

    words = ['aaa','','bbb','ccc','','','ddd','']
    # 在使用 for...in 循环遍历时,不要对列表进行增删操作
    # for i in words:
    #     if i == '':
    #         words.remove(i)
    # print(words) # ['aaa', 'bbb', 'ccc', 'ddd', '']
    
    i = 0
    while i < len(words):
        if words[i] == "":
            words.remove(words[i])
            i -= 1
        i += 1
    print(words) # ['aaa', 'bbb', 'ccc', 'ddd']
    
    
  12. 列表推导式

    # # 使用简单的语法创建列表
    nums = [i for i in range(10)]
    print(nums) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    point = [(x,y) for x in range(1,6) for y in range(10,12)]
    print(point)
    # # [(1, 10), (1, 11), (2, 10), (2, 11), (3, 10), (3, 11), (4, 10), (4, 11), (5, 10), (5, 11)]
    
  13. 深拷贝和浅拷贝

    nums1 = [0,1,2,3,4,5]
    # 浅拷贝,只拷贝了一层
    nums2 = nums1.copy()
    print(nums2) # [0, 1, 2, 3, 4, 5]
    
    # 深拷贝,只能使用copy模块实现
    import copy
    words = ['hello','good',[100,200,300],'yes','jack','ok']
    words1 = words.copy()
    words2 = copy.deepcopy(words)
    words[2][0] = 1
    print(words) # ['hello', 'good', [1, 200, 300], 'yes', 'jack', 'ok']
    print(words1) # ['hello', 'good', [1, 200, 300], 'yes', 'jack', 'ok']
    print(words2) # ['hello', 'good', [100, 200, 300], 'yes', 'jack', 'ok']
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

生于尘埃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值