week2day1 列表操作()

发布时间:2024年01月22日

一. 列表相关操作

1.列表支持的数学运算符:

? a . +、*

? ? ? ?列表1 + 列表2 = 将两个列表合并成一个新的列表

list = [10,20,30]
list2 = [340,50,60]
print(list + list2)

'''
[10, 20, 30, 340, 50, 60]
'''
? b. 列表 *N? /? N*? (N是正整数)
  • 将列表中的元素重复N次产生一个新的列表
list = [10,20,30]
result2 = list * 3
print(result2)

'''
[10, 20, 30, 10, 20, 30, 10, 20, 30]
'''

2. 列表支持的比较运算符

? ? a . 比较是否相等 == / !=
print(list1 == [10,20,30])
?b. 比较大小: >、? < 、? >= 、? <=
  • 比较大小时候只能两个列表来比
  • 比较规则: 比较第一对不相等的元素大小

3. in 和 not in

  • 数据 in 列表: 判断列表中是否存在指定数据对应的元素
list = [10,20,30]
print(10 in list)    #True
print([10,20] in list)   #False
  • 数据not in 列表: 判断列表中是否不存在指定数据对应的元素

二. 列表相关函数 :sum、max、min、sorted、len、list

?1.sum()? ---- 求列表中所有元素的和(列表必须是数字列表)

list = [10,20,30]
print(sum(list))

?2. max(列表)?

list = [10,20,30]
print(max(list))

?3. min(列表)

list = [10,20,30]
print(min(list))

?4. sorted(列表), sorted(列表名,reverse = True),为降序排列,不写reverse 默认为False, 是升序排列

  • ?将列表中的元素按照从小到大的方式(升序)排序,得到新的列表.
  • ?sorted() , 不会直接打印,需要赋予变量名
list = [10,44,60,20,30]
new= sorted(list)
print(new)

#[10, 20, 30, 44, 60]
list = [10,44,60,20,30]
new= sorted(list, reverse= True)
print(new)

#[60, 44, 30, 20, 10]

?5. len(列表)? ?-- 获取列表中元素的个数

list = ['abc', 2, 'hello',[1,2,3]]
print(len(list))

# 4

6. list(数据)? ?

  • 将指定数据转换成列表(任何容器型数据类型的数据都可以转换成列表,转换的时候直接将容器中的元素转换成列表的元素)
    print(list('abc'))   #['a', 'b', 'c']
    print(list(range(6))) #[0, 1, 2, 3, 4, 5]

三. 列表. 的操作

?1.? 列表.clear()?
  • ? 清空列表(删除列表中所有元素)
list = [10,44,60,20,30]
list.clear()
print(list)
#[]
?2.? 列表.copy()? ?
  • 复制指定列表,产生一个一模一样的新列表并且返回。
list = [10,44,60,20,30]
list1 = list.copy()
print(list1)
  • 列表[ : ]? ?、 列表 * 1 、 列表 + [ ]? ? ? ?效果和 列表.copy() 相同
list = [10,44,60,20,30]
n = list[:]
i = list + []
k = list * 1
print(n)
print(i)
print(k)

#[10, 44, 60, 20, 30]
#[10, 44, 60, 20, 30]
#[10, 44, 60, 20, 30]

3 . count
  • 列表. count(数据)? ? -? ?统计指定列表中指定数据的个数
list = [10,44,60,20,30,10,10,20]
print(list.count(10))

# 3
4. 列表.extend(容器)
  • 将容器中所有的元素都添加到列表的最后
my_list = [10, 44, 60, 20, 30, 10, 10, 20]
my_list.append('abc')
print(my_list)    #[10, 44, 60, 20, 30, 10, 10, 20, 'abc']
my_list.extend('abc')
print(my_list)    #[10, 44, 60, 20, 30, 10, 10, 20, 'abc', 'a', 'b', 'c']
5. 列表.index(指定元素)
  • 获取指定元素在列表中对应的索引值(从0开始的索引值)
my_list = [10, 44, 60, 20, 30, 10, 10, 20]
print(my_list.index(10))    # 0
6. 列表.reverse()
  • 将列表中的元素 倒叙
my_list = [10, 44, 60, 20, 30, 10, 10, 20]
my_list.reverse()
print(my_list)
#[20, 10, 10, 30, 20, 60, 44, 10]
7. 列表.sort()?
  • 将列表中的元素升序排序
  • 列表.sort(reverse = True) , 列表降序排序? (不产生新列表,只对原列表产生影响,sorted() 会产生新列表)
my_list = [10, 44, 60, 20, 30, 10, 10, 20]
my_list.sort(reverse= True)
print(my_list)
#[60, 44, 30, 20, 20, 10, 10, 10]

四. 列表推导式? - 快速创建列表的表达式

? ?1.? 第一种结构

[表达式 for 变量 in 容器]
  • 如何工作: 变量每在容器获取一次值,就计算一次表达式
result = [ 10 for i in range(5)]
print(result)

#[10, 10, 10, 10, 10]
result = [ i*8 for i in range(1,10)]
print(result)

#[8, 16, 24, 32, 40, 48, 56, 64, 72]
# 练习1:

利用列表推导式获取nums中所有元素的个位数
nums = [19, 344, 52, 18, 77, 65, 66, 76]
# [9, 4, 2, 8, 7, 5, 6, 6]

nums = [19,344,52,18,77,65,66,76]
result = [(i%10)  for i in nums]
print(result)
# 练习2:

利用列表推导式将nums是中所有的元素都乘以2
nums = [10, 2, 4, 5, 20]
# [20, 4, 8, 10, 40]

nums2 = [10,2,4,5,20]
result2 = [i *2 for i in nums2]
print(result2)

2. 第二种结构

[表达式 for 变量 in 容器  if 条件语句]
  • 原理: 让变量去容器中取值,一个一个的取,取完为止,每取一个值就判断一次条件是否成立,如果成立就计算表达式的结果作为列表的一个元素

3. 第三种结构(三目运算符)

  • 双目运算符: + 、 -、*、 /? 、>? ?、 <
  • 单目运算符 : not?
  • c语言的三目运算符: ?:

? ? ? ? ? #### 条件?值1:值2? ?(条件为真 运算结果为值1, 否则为值2)

  • python的三目运算符: if else

? ? ? ? 值1? ?if条件? else 值2 (判断条件是否成立,如果成立结果为值1,否则值2)

三目练习:判断成年? ? ? ? ??
age = int(input('年龄'))
if age < 19:
    print('未成年')
else:
    print('成年')

# 三目推导式
age = int(input('年龄'))
n = [print('未成年') if age < 19 else print('成年')]
整体练习1(有点绕)
result2 = [x for x in range(1,10) if x % 2]
print(result2)

输出为奇数, 因为if x % 2 进行判断时,答案为True (1)才运行,x为奇数余数才为1,所以这是判断为奇数时才继续运行

??练习2:

利用列表推导式提取nums中所有的偶数
nums = [89, 78, 66, 54, 43, 77, 950]
# [78, 66, 54, 950]

nums = [89, 78, 66, 54, 43, 77, 950]

result = [ i for i in nums if i % 2 == 0]
print(result)
?练习3

利用列表推导式删除scores中所有的不及格分数
scores = [99, 80, 56, 73, 59, 92, 84]

scores = [99, 80, 56, 73, 59, 92, 84]
result2=[scores.remove(i) for i in scores if i < 60]
print(scores)
练习4

利用列表推导式将nums中所有的偶数都除以2,所有奇数*2
nums = [10, 3, 17, 80, 44, 5]
# [5, 6, 34, 40, 22, 10]

nums = [10, 3, 17, 80, 44, 5]

result3 = [ i//2  if i % 2 ==0  else i*2  for i in nums ]

print(result3)

分析:用的三目运算符, 遍历nums, 如果为偶数,整除2,否则*2.

文章来源:https://blog.csdn.net/weixin_46659095/article/details/135739751
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。