栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

学习使我快乐 第五天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学习使我快乐 第五天

Day 05 一.列表运算 1.列表的重复
  • 可直接使用*使其重复,需注意 *号需跟整数,意思是代表重复次数。
  • 例:
list1=[1, 2, 3 , 4]

print(list1*3)

打印结果为 [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]

2.列表的拼接
  • 可直接使用+进行拼接。
  • 例
list1=[1, 2, 3, 4]
list2=[5, 6, 7, 8]
print(list1+list2)

打印结果为[1, 2, 3, 4,5, 6, 7, 8]

3.成员运算 : in、not in,运算的结果为布尔值。
  • 例
print(3 in [1, 2, 3])
print([3] in [1, 2, 3])

打印结果为:True,False

4.比较大小

a. 比较大小的元素必须是同类型的
b. 比较大小比较的是第一队不相等元素的大小(容器)
c. 数字正常比较大小

  • 例
list1 = [1, 2, 3, 4]
list2 = [1, 2, 4, 5]
print(list1 < list2)

list1 = [1, 2, '3', 4]
list2 = [1, 2, '4', 5]
print(list1 < list2)

list1 = ['1', 2, 3, 4]
list2 = [1, 2, 4, 5]
# 此段打印结果为:TypeError: '<' not supported between instances of 'str' and 'int'
# 不同类型无法作比较

打印结果为:True,True

二、列表的放法和函数 1.获取同类型的最大值或最小值
  • 例
num = [1, 2, 3, 4]
print(max(num))
print(min(num))

打印结果为:1,4

2.count : 统计某个元素的出现个数
  • 例
num = [1, 2, 3, 4]
print(num.count(num[3]))
print(num.count(50))
# 没有这个元素则会报 0

打印结果为:1,0

3.sum 求和
  • 例
num = [1, 2, 3, 4]
print(sum(num))

打印结果为:10

4.reverse:将列表倒序,返回值为None,直接修改列表本身。
  • 例
num = [1, 2, 3, 4]
print(num.reverse())
print(num)

打印结果为:[4, 3, 2, 1]

5.sorted:将列表从小到大排序,生成新的列表。 sort:将列表从小到大排序,修改原来的列表。
  • 例
num1 = [23, 50, 30, 75]
print(sorted(num1))
print(sorted(num1, reverse=True))
'''
结果为
[23, 30, 50, 75]
[75, 50, 30, 23]
'''
print(num1.sort(reverse=False))
print(num1)
print(num1.sort(reverse=True))
print(num1)
'''
结果为
None
[23, 30, 50, 75]
None
[75, 50, 30, 23]
'''
6.extend():将一个容器中的元素添加到列表中。
  • 例
num1.extend('abcde')
print(num1)
num2 = ['a', 7, 8, 9]
num1.extend(num2)

打印结果为:
[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’]
[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘a’, 7, 8, 9]

7.index:查找某个元素

a. 从左向右查找,找到元素立马停止,返回下标。
b. 如果元素不存在,将会报错。

  • 例
num1=[75, 50, 30, 23, 'a', 'b', 'c', 'd', 'e', 'a', 7, 8, 9]
index1 = num1.index('a')
print(index1)
index2 = num1.index('a', 5)
  # 从下标为5的元素开始查找
print(index2)

打印结果为元素下标:4,9

练习:不适用 index 方法寻找第二个元素a

num1=[75, 50, 30, 23, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘a’, 7, 8, 9]

total = 0
for i in range(len(num1)):
    if num1[i] == 'a':
        total += 1
        if total == 2:
            print(i)
三、列表去重 1. 有一个列表,要求去掉重复的人名
  • 例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘张三’,‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]
    解析:方法一
names = ['张三', '李四', '大黄', '张三', '张三']
name_list = []
for i in names:
    if i not in name_list:
        name_list.append(i)
print(name_list)

解析:方法二

names = ['张三', '李四', '大黄', '张三', '张三']
for i in range(len(names),-1,-1):
    if i names.count(i)>1:
    del names[i]
    print(names)

解析:方法三

index=0
while index <= len(names)-1:
    if i names.count(i)>1:
        del names[index]
        else:
        	index+=1
        print(names)
四、列表的推导式(列表的生成式)
  1. 列表推导式(列表生成式):生成一个有元素的列表
    a. 语法1 :[表达式 i for 变量 in rongqi]
    for 循环每执行一次,表达式就会将其生成的结果添加到列表中。
    例:
    (1).将1-100的整数生成一个列表:

    nums = [i for i in range(1, 101)]
    print(nums)
    

    打印结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
    (2).将10个1生成一个列表:

     nums = [1 for _ in range(10)]
    

    打印结果为:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    b.append()适用于所有向列表中追加元素的操作;列表推导式在某些情况下可以替代append()

    import time
    
    start = time.time()
    list1 = []
    for i in range(1, 10000001):
    	list1.append(i)
    end = time.time()
    print(f'append 方法一共花费{end - start}秒')
    
    start = time.time()
    list2 = [i for i in range(1, 10000001)]
    end = time.time()
    print(f'推导式 方法一共花费{end - start}秒')
    

    得出结果:性能:列表推导式>append()

    c.语法二:[表达式 for 变量 in 容器 if 条件] 注:只能加if,不能在家其他命令
    for 循环执行一次,if 分支判断一次,条件成立才会向列表添加元素

    例:将1-100内偶数生成一个列表:

    nums = [i for i in range(1,101) if i % 2 == 0 ]
    print(nums)
    

    打印结果为:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100]

    d. 语法三:[表达式 for 变量 in 容器 for 变量 in 容器 ] 几乎用不到
    例:将1-10打印3次:

    list4 = [i for _ in range(3) for i in range(1, 11)]
    print(list4)
    

    打印结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

五、随机模块 1. random:随机模块,适用于俄罗斯轮盘、抽奖等。
  • import random
  • randint(a,b) -> 从[a,b]闭区间中随机获取一个整数
  • randrange()->约等于randint+range
  • 例:
 import random 
 # randrange()->约等于randint+range
 print(random.randrange(1, 4, 2))
 # choice()->从容器中随机获取一个元素
 print(random.choice([1, 2, 3, 4]))
 # choices()->从容器中随机获取k个元素,有放回的抽取元素
 print(random.choices([1, 2, 3, 4], k=5))
 # sample()->从有序容器中无放回的抽取元素,也可以获取k个元素
 print(random.sample([1, 2, 3, 4], k=3))
  # shffule()->将有序容器随机打乱顺序,无返回值,修改序列本身
 list=[1, 2, 3, 4]
 print(random.shuffle(list))
 print(list)

打印结果为:
1
4
[4, 3, 3, 2, 3]
[1, 3, 4]
None
[1, 4, 2, 3]

练习:课堂点名器

names = ['张三','李四','王二','麻子']
random.shuffle(names)
while True:# 此处可进行暗箱操作 
   result = random.choices(names, k=1)
   if result == ['王二']:# 随机至王二在进行输出
       break
print(f'被抽中的同学为:{result}')
# 会一直是王二
  • 使用PyQt/wxpython等GUI(图形可视化)进行可视化
  • 使用pyinstall将程序封装成windows的exe可执行文件
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号