python边缘知识

python3中常用的序列函数

len(x) 返回序列的长度
max(x) 返回序列的最大值元素
min(x) 返回序列中最小值元素
sum(x) 返回序列中所有元素的和(元素必须是数值类型)
any(x) 真值测试, 如果列表中其中一个值为真值则返回True,否则返回False
all(x) 真值测试,如果列表中所有值为真值,则返回True,只要有一个为假,则返回False

# 1.已知有列表
#   L = [3, 5]
#   用索引和切片操作,将列表改为:
#   L = [1,2,3,4,5,6]
#   将列表反转(前后对调), 然后删除最后一个元素
#   print(L)  # [6,5,4,3,2]

L = [3, 5]
L[1:1] = [4]
L[0:0] = [1,2]
print(L)
L[len(L):len(L)] = [6]
print(L)

L[:] = L[::-1]  # 反转
del L[-1]
print(L)  

 

 

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

L = []  # 先创建一个列表,用来存储输入的整数
while True:
    n = int(input("请输入(-1结束):"))
    if n == -1:
        break
    L += [n]  # 将n追加到L列表中

print(L)
print("您输入的有效个数是: ", len(L))
print("您输入的最大数是:", max(L))
print("您输入的最小数是:", min(L))
print("您输入的平均数是:", sum(L)/len(L))

 

 

# 练习:
#   写一个程序,输入多行文字,当输入空行时结束输入
#   将原输入的所有字符串存于列表L中
#   1. 按原来输入的行的顺序反向打印这些行
#      列:
#        输入:hello world
#        输入:welcome to china
#        输入:I like python
#        输入: <回车>
#      显示
#        I like python
#        welcome to china
#        hello world
#   2. 打印出您共输入了多少文字符?

L = []  # 用来存放每一行字符串
while True:
    s = input("输入: ")
    if not s:  # s为空则跳出循环
        break
    L.append(s)  # 追加到L中

print(L)

s = 0  # 用来记录字符个数
# 方法1,
# i = len(L) -1  # 得到最后一个行的索引
# while i >= 0:
#     print(L[i])
#     s += len(L[i])
#     i -= 1

# 方法2, 用for循环
L.reverse()  # 先反转
for line in L:
    print(line)
    s += len(line)

print("字符的个数是:", s)

 

 

 

字符串文本解析方法 split 和 join

S.split(sep=None) 将字符串,使用sep作用为隔符分割S字符串,返回分割后的字符串的列表,当不给定参数时,用空白字符作为分隔符进行分割
S.join(iterable) 用可迭代对象中的字符串,返回一个中间用S进行分隔的字符串

s = 'Beijing is capital'
L = s.split(' ') # L = ['Beijing', 'is', 'capital']
s = '\\'
L = ['C:', 'Programe files', 'python3']
s2 = s.join(L) # s2 = b'C:\Programe files\python3'

 

 

深拷贝 deep copy 和 浅拷贝 shallow copy

浅拷贝:是指在复制过程中只复制一层变量,不会复制深层变量绑定的对象的复制过程

L = [3.1, 3.2]
L1 = [1, 2, L]
L2 = L1.copy() # 等同于 L1[:] 浅拷贝
print(L1) # [1, 2, [3.1, 3.2]]
print(L2) # [1, 2, [3.1, 3.2]]
L2[2][0] = 3.14
print(L1) # [1, 2, [3.14, 3.2]]
print(L2) # [1, 2, [3.14, 3.2]]

 

深拷贝
注:深拷贝通常只对可变对象进行复制,不可变对象通常不变

 

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

 

posted @ 2019-02-13 21:43  LeoLRH  阅读(389)  评论(0编辑  收藏  举报