day5-循环练习和列表

day5-循环练习和列表

01.循环嵌套

(1) 循环嵌套的执行原则:外循环一次,内循环完整

for x in range(5):
    for y in range(2, 5):
        print(x,y)
  • x的取值范围: 0, 1, 2, 3, 4
    第一次 x = 0: 执行循环体对应的for循环, y取值范围是:2, 3, 4
    第一次 y=2: print(x, y) -> print(0, 2)
    第一次 y=3: print(x, y) -> print(0, 3)
    第一次 y=4: print(x, y) -> print(0, 4)
    内循环结束

02.认识列表

(1) 什么是列表

  • 列表长什么样子:列表是容器型数据类型(序列);将[]作为容器的标志,里面多个元素用逗号隔开:[元素1,元素2,元素3,…]
  • 列表的特点:列表是可变的(元素的个数、值和顺序可变) - 增、删、改;列表是有序的 - 支持下标操作
  • 列表对元素的要求:没有要求(不管什么类型的数据都可以作为列表的元素)
  • 空列表
ist1 = []
ist2 = [ ]
rint(type(list1),type(list2))
rint(bool(list1),bool(list2))
rint(len(list1),len(list2))  
  • 列表可以同时保存多个数据
list3 = [89,90,76,99,58]
print(list3)

(2) 查 - 获取元素

  • 查分为三种情况:获取单个元素、切片、遍历(一个一个的取)
  • 获取单个元素

语法:列表[下标]
说明:
列表 - 任何结果是列表的表达式,比如:保存列表的变量、具体的列表值等
[] - 固定写法
下标 - 下标又叫索引,是元素在有序序列中位置信息。
python中有序序列中每个元素都有两组下标值,分别是:从前往后从0开始递增的下标值;从后往前从-1开始递减的下标值

name = ['甄姬','貂蝉','韩信','吕布','赵云','后羿','鲁班','狄仁杰']
print(name[1])
print(name[-1])
print(name[5])

(3) 遍历

  • 方式1 - 直接获取列表中的每个元素
    for 变量 in 列表:
    循环体

  • 方式2 - 先获取每个元素的下标值,然后通过下标再获取元素
    for 下标 in range(len(列表)):
    循环体

    range(len(列表)) == range)列表中元素的个数)

  • 方式3 - 同时获取列表中每个元素和元素对应的下标
    for 下标, 元素 in enumerate(列表):

03.添加元素

(1) 列表

  • 列表.append(元素) - 在列表的最后添加一个元素
  • 列表. insert(下标,元素) - 在指定下标对应的元素前插入指定元素

(2) 批量添加

  • 列表1.extend(列表2) - 将列表2元素全部添加到列表1的后面

    1.已知一个数字列表,求列表中心元素。

nums = [23, 45. 89, 20, 19, 40, 30, 8]
count = len(nums)
if count % 2:
    print(nums[count // 2])
else:
    index = count // 2
    print(nums[index - 1], nums[index])

2.已知一个数字列表,求所有元素和。

nums = [23,45, 89, 20, 19, 40, 30, 8]
sum1 = 0
for item in nums:
    sum1 += item
print(sum1)

3.已知一个数字列表,输出所有奇数下标元素。

nums = [23, 45, 89, 20, 19, 40, 30, 8]
print(nums[1:2])

4.已知一个数字列表,输出所有元素中,值为奇数的元素。

nums = [23, 45, 89, 20, 19, 40, 30, 8]
for item in nums:
    if item % 2:
        print(item)

5.已知一个数字列表,将所有元素乘二。

例如:nums = [1, 2, 3, 4] —> nums = [2, 4, 6, 8]

nums = [23, 45, 89, 20, 19, 40, 30, 8]
for index, item in enumerate(nums):
    nums(index) = item * 2
print(nums)

6.有一个长度是10的列表,数组内有10个人名,要求去掉重复的

例如:names = [‘张三’, ‘李四’, ‘大黄’, ‘大黄’, ‘张三’, ‘张三’, ‘张三’] -> names = [‘张三’, ‘李四’, ‘大黄’]

names = ['张三', '李四', '大黄', '大黄', '张三', '张三', '张三']
new_nums = []
for name in names:
    if name not in new-names:
    	new_names.append(name)
print(new_names)

7.用一个列表来保存一个节目的所有分数,求平均分数(去掉一个最高分,去掉一个最低分,求最后得分)

scores = [89, 90, 65, 70, 92, 88, 56]
scores.sort()
sum1 = 0
del score(0)
del score(-1)
for i in scores:
    sum1 += i
print(sum1 / len(scores))

8.有两个列表A和B,使用列表C来获取两个列表中公共的元素

例如: A = [1, ‘a’, 4, 90] B = [‘a’, 8, ‘j’, 1] --> C = [1, ‘a’]

A = [1, 'a', 4, 9]
B = ['a', 8, 'j', 1]
C = []
for i in A:
    for i in B:
        C.append(i)
print(c)

9.有一个数字列表,获取这个列表中的最大值.(注意: 不能使用max函数)

例如: nums = [19, 89, 90, 600, 1] —> 600

nums = [19, 89, 90, 600, 1]
max_value = nums[0]
for item in nms[1:0]:
    if item > max_value:
        max_value = item
print(max_value)

10.获取列表中出现次数最多的元素

例如:nums = [1, 2, 3,1,4,2,1,3,7,3,3] —> 打印:3

nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3, 1]
new_nums = []
for item in nums:
    lf item not in new_nums:
        new_nums.append
max_count = 0
for item in new_nums:
    i_count = nums.cuont(item)
    if i_count > max_count:
        max_count = i_count
for item in new_nums:
    if nums.count(item) == max_count:
        ptint(item)
上一篇:AcWing寒假每日一题——Day5回文平方


下一篇:day5_请求与响应