Python全栈工程师(列表、拷贝)

简介:                                     ParisGabriel                感谢 大家的支持  你们的阅读评价就是我最好的更新动力  我会坚持吧排版做的越来越好                                  ...

 

                                    ParisGabriel
 
               感谢 大家的支持  你们的阅读评价就是我最好的更新动力  我会坚持吧排版做的越来越好 
                                
 
                     



                     每天坚持 一天一篇 点个订阅吧  灰常感谢    当个死粉也阔以

 

                          Python人工智能从入门到精通

 

 

 

列表创建函数:
  list(可迭代对象)
序列有5种:
  star 字符串
  list 列表
  tuple 元组
  bytes   后面讲 
  bytearray  后面讲 
  序列运算符:
  in 、 not in
  >
  >=
  <
  <=
  +
  *

列表的索引可以增加、删除、修改、列表的元素值
切片赋值:
  步长不等于1时切片赋值,赋值运算符的右侧的可迭代对象提供的元素
  的个数一定要等于切片切出的片数
del语句:
  用于删除列表的元素
  del 列表 [索引]
  del 列表 [切片]
Python3中常用的序列相关函数:
  len(x) 返回序列的长度
  max (x) 返回最大元素
  min(x) 返回序列最小元素
  sum(x) 返回序列中所有原素的和
  any(x) 真值测试,如果列表中有一个值为真返回true
  all(x) 真值测试,如果列表中所有值为真返回true

 

列表的方法(method)
help(list)

[ ]内的参数代表可以省略
    方法                        意义
L.index(v [, begin[, end]])         返回对应元素的索引下标, begin:为开始索引,end:为结束索引,当 value 不存在时触发ValueError错误
L.insert(index, obj)          将某个元素插放到列表中指定的位置 index:索引 obj:要插入的元素
L.count(x)              返回列表中元素的个数 x:元素
L.remove(x)            从列表中删除第一次出现在列表中的值 x:元素(例如列表内有2个3 删除第一个 依次进行)
L.copy()                复制此列表(只复制一层,不会复制深层对象)
L.append(x)               向列表中追加单个元素 可以追加可迭代对象元素
L.extend(list)              向列表追加另一个列表
L.clear()                清空列表,等同于 L[:] = []
L.sort(reverse=False)          将列表中的元素进行排序,默认顺序按值的小到大的顺序排列
L.reverse()               列表的反转,用来改变原列表的先后顺序
L.pop([index])           删除索引对应的元素,如果不加索引,默认删除最后元素,同时返回删除元素的引用关系(相当于取出元素不归还,可以用变量来接受)
字符串的文本解析方法:
S.split(sep=None)     将字符串使用sep作为分隔符分割字符串,返回分隔后的字符串列表,当不给定参数时,用空白字符作为分隔符分隔
S.join(iterable)      用可迭代对象中的字符串,返回一个中间用S分隔组合的字符串 S=esp 要插入分割链接的字符 iterable:可迭代对象

潜拷贝和深拷贝:

潜拷贝shallow copy:
  help(list.copy)
  拷贝指在复制过程中,只复制一层变量,不会复制深成变量绑定的对象的复制过程
  例如:

>>> L = [3.1,3.2]
>>> L1 = [1, 2, L]
>>> L2 = L1.copy()
>>> L1
[1, 2, [3.1, 3.2]]
>>> L2
[1, 2, [3.1, 3.2]]
>>> L2[2][0] = 3.14
>>> L1
[1, 2, [3.14, 3.2]]
>>> L2
[1, 2, [3.14, 3.2]]

 

深拷贝 deep copy:
  import copy # 导入copy 模块
  例如:
  L = [3.1, 3.2]
  L1 = [1, 2, L]
  L2 = L1.deep copy()
  L2[2][0] = 3.14
  print(L1) #[1, 2, [3.1, 3.2]]
  print(L2) #1, 2, [3.14, 3.2]]

  深拷贝通常只对可变对象进行复制 ,不可变对象通常不会复制(这里深拷贝需要 import copy中的deepcopy  后面讲)

小结:
  L1 = [1, 2, [3.1, 3.2]]

这里只是纯粹的调用关系  可以通过内存地址查看

 

  L2 = L1          # 不拷贝 同时绑定一个对象
  L3 = L1.copy()    # 潜拷贝等同于 L3 = L1[:]
  import copy
  L4 = copy.deepcopy(L1) #深拷贝

 

列表推导式 list comprehension:
  列表推导式是用可迭代对象生成列表的表达式
语法:
  [表达式 for 变量 in 可迭代对象]
  或
  [表达式 for 变量 in 可迭代对象 if 真值表达式]

说明:
  for in 表达式的 if 子句可以省略,省略后将对所有生成的对象进行求值处理
  如:生成1~9的平方的列表
  L= [x ** 2 for x in range(1,10)]
列表推到式的嵌套:
语法:
L=[表达式
    for 变量1 in 可迭代对象1 if 真值表达式1
        for 变量2 in 可迭代对象2 if 真值表达式2 ]

 

OK 今天的练习比较多 但是都很简单  争取把每个题都要理解他的原理 不懂得对照上面的参数进行核对一下就可以

想要入门IT就必须多写多练 写的代码也多 你就越熟练  越熟练经验越多  尝试不同的思路去分析  

什么时候写的想吐 什么时候才算会了  我们一起加油  

 

练习:

1.

已知有列表:
L = [3, 5]

1) 用索引和切片等操作,将原列表改变为:
L = [1, 2, 3, 4, 5, 6]
2) 将列表反转,删除最后一个元素后打印此列表
...
print(L) # [6, 5, 4, 3, 2]

答案:

L = [3, 5]
L[:] = range(1, 7)
L[::-1] = range(1, 7)# L[:] = [range(6, 0, -1)]
del L[-1]
print(L)

 

2.
1. 写程序,让用户输入一些整数,当输入-1时结束输入,将这些数存于列表L中
1) 打印用户共输入了几个数?
2) 打印您输入的数的最大数是多少
3) 打印您输入的数的最小数是多少
4) 打印您输入的这些数的平均值是多少?

 答案:

L = []
while True:
    a = int(input("please input at will integer (input '-1' over):"))
    if a < 0:
        break
    L.append(a)
L.sort()
print("you input line number", len(L))
print("top1:", L[-1])
print("lower1:", L[0])
print(" average number :", sum(L) / len(L))

 

 

3.

1.已知有一个字符串
s = “100, 200, 300, 500, 800”
将其转换为整数的列表存于L列表中

答案:

s = "100,200,300,500,800"
L = s.split(",")
print(L)

 

2.生成前40个婓波那契数(fibonacci)
1 1 2 3 5 8 13 .....
要求将这些数字保存在列表中
打印这些数

答案:

L = [1, 1]
a = 1
b = 1
while True:
    a += b
    b += a
    L += [a, b]
    if len(L) > 38:
        break
print(L)
方法二
L = [1, 1]
a = 1
b = 0
i = 0
while i < 40:
    a = a + b
    b = a - b
    L.append(b)
    i += 1
print(L)

 

 

4.

L= [1, 3, 2, 1, 6, 4, 2, ......98, 82]
将列表中出现的重复数字存入另一个列表L2中
要求:重复出现多次的数字在L2中只保留一份 (去重)

答案:

L = []
while True:
    a = int(input("please input at will integer (input '-1' over):"))
    if a < 0:
        break
    L.append(a)
L2 = []
for x in L:
    if x not in L2:
        L2.append(x)
print(L)
print(L2)

 

 

5.
输入多行文字,存入列表中,
每次输入回车后算一行
任意输入多行,当输入回车(即输入空行时结束输入)
1) 按原输入内容在屏幕上输出内容
2) 打印出您共输入了多少行文字
3) 打印出您共输入了多少个字符

答案;

L = []
i = 0
while True:
    a = input("please input at will string direct Enter over:")
    if a == "":
        break
    i += len(a)
    L.append(a)
for x in L:
    print(x)
print("您共输入的行数:", len(L))
print("您共输入的字符:", i)

 

6.
1. 有字符串"hello"
请用此字符串生成:
'h e l l o' 和 'h-e-l-l-o'
2. 写一个程序,让用户输入很多正整数,当输入小于零的数时结束输入,
1) 打印这些数中最大的一个数
2) 打印这些数中第二大的一个数
3) 删除最小的一个数
4) 打印剩余数的和

答案:

s = "heool"
L = " ".join(s)
print(L)
L = "-".join(s)
print(L)

7.
用列表推导式生成1~100内奇数的列表
结果是: [1, 3, 5, 7, ..... 99]

答案:

L = [x for x in range(1, 100, 2)]
print(L)
L = [x for x in range(1, 100) if x % 2 != 0]
print(L)

8.
生成一个数值为 1 ~ 9的平方的列表,去掉所有的奇数的平方
答案:

L = [x**2 for x in range(2, 10, 2)]
print(L)
L = [x**2 for x in range(2, 10) if x % 2 == 0]
print(L)

             Python人工智能从入门到精通

 

 

加油!

 

相关文章
|
1天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
20 9
|
9天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
22 14
|
11天前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
28 10
|
28天前
|
数据处理 开发者 Python
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。
|
1月前
|
开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
|
1月前
|
Python
探索Python中的列表推导式
【10月更文挑战第38天】本文深入探讨了Python中强大而简洁的编程工具——列表推导式。从基础使用到高级技巧,我们将一步步揭示如何利用这个特性来简化代码、提高效率。你将了解到,列表推导式不仅仅是编码的快捷方式,它还能帮助我们以更加Pythonic的方式思考问题。准备好让你的Python代码变得更加优雅和高效了吗?让我们开始吧!
|
2月前
|
Python
探索Python中的列表推导式
【10月更文挑战第20天】在编程世界里,时间就是一切。Python的列表推导式是节约时间、简化代码的一大利器。本文将带你深入理解并有效利用这一强大工具,从基础到高级用法,让你的代码更加简洁高效。
|
1月前
|
Python
SciPy 教程 之 SciPy 模块列表 13
SciPy教程之SciPy模块列表13:单位类型。常量模块包含多种单位,如公制、二进制(字节)、质量、角度、时间、长度、压强、体积、速度、温度、能量、功率和力学单位。示例代码展示了如何使用`constants`模块获取零摄氏度对应的开尔文值(273.15)和华氏度与摄氏度的转换系数(0.5556)。
18 1
|
1月前
|
弹性计算 安全 数据处理
Python高手秘籍:列表推导式与Lambda函数的高效应用
列表推导式和Lambda函数是Python中强大的工具。列表推导式允许在一行代码中生成新列表,而Lambda函数则是用于简单操作的匿名函数。通过示例展示了如何使用这些工具进行数据处理和功能实现,包括生成偶数平方、展平二维列表、按长度排序单词等。这些工具在Python编程中具有高度的灵活性和实用性。
35 2
|
2月前
|
Python
SciPy 教程 之 SciPy 模块列表 9
SciPy教程之常量模块介绍,涵盖多种单位类型,如公制、质量、角度、时间、长度、压强等。示例展示了如何使用`scipy.constants`模块查询不同压强单位对应的帕斯卡值,包括atm、bar、torr、mmHg和psi。
16 1
下一篇
DataWorks