1 python面试题
代码块
def extend_list(v, list=[]):
list.append(v)
return list
l1 = extend_list(1)
print(l1) # [1]
l2 = extend_list(2, [])
print(l2) # [2]
l3 = extend_list(3)
print(l3) # [1, 3]
print(l1) # [1, 3] 为什么这里是[1,3]呢,因为上面已经完全加载完成了
print(l2) # [2]
print(l3) # [1, 3]
print(l1 is l3) # True
print(l1 is l2) #False
2 以下代码输出的是什么?
代码块
list1 = ["a", "b", "c", "d", "e"]
print(list1[10:])
3 列表的截取
代码块
list1 = ["a", "b", "c", "d", "e"]
print(list1[10:]) # []
print(list1[1:]) # ["b", "c", "d", "e"]
print(list1[1:0]) # []
print(list1[1::2]) # "b", "c", "d", "e" 步长为2
4 如何反转列表(这个案例都是生成新列表,原列表不发生变化)
代码块
list1 = ["a", "b", "c", "d", "e"]
list2 = reversed(list1)
print(list(list2)) # ['e', 'd', 'c', 'b', 'a'] 生成一个新列表
print(list1) # ['a', 'b', 'c', 'd', 'e'] 原来的列表不变化
print(list1[::-1]) # 利用切片翻转列表,生成一个新列表不是操作的原来的列表
print(list1) # ['a', 'b', 'c', 'd', 'e']
5 列表的操作方法合集
5-1 列表增加元素的3种方式
尾部增加一个元素append()
list1 = [11, 22, 33]
list1.append([44, 55])
print(list1) # [11, 22, 33, [44, 55]]
尾部利用extend()添加多个元素
list1 = [11, 22, 33]
list1.extend([44, 55])
print(list1) # [11, 22, 33, 44, 55]
列表指定位置插入元素
list1 = [11, 22, 33]
list1.insert(0, 'wangsiyu')
print(list1) # ['wangsiyu', 11, 22, 33]
list1.insert(4, 'wangsiyu')
print(list1) # ['wangsiyu', 11, 22, 33, 'wangsiyu']
5-2列表删除元素2种方式
pop()删除末尾或者指定位置的元素
list1 = [11, 22, 33]
list1.pop(2) # 返回被弹出的那个元素,删除执行索引位置元素,如果为空,默认删除尾末的元素
print(list1)
删除某个元素(从左到右的第一个)remove()
list1 = [11, 22, 33,33]
list1.remove(33) # 删除碰到的第一个元素(从左开始)
print(list1)
5-3列表的反转
代码块
list1 = [11, 22, 33]
list1.reverse() # 反转原来的列表
print(list1) # [33, 22, 11]
5-4清空列表
代码块
list1 = [11, 22, 33]
list1.clear() # 清空原列表
print(list1)
6 打乱列表
代码块
list1 = [11, 22, 33, 44, 55]
import random
random.shuffle(list1)
print(list1) # 每次结果都不一样。
7 把[11, 22, 33, 44]变成11223344
代码块
lst=[11, 22, 33, 44]
res= '+'.join([str(i) for i in lst])
print(res)
8 Python三元运算
代码块
a = 100
b = 200
# 如果a的值大于b,就把a的值赋值给c,否则把b的值赋值给c
if a > b:
c = a
else:
c = b
c = a if a > b else b # 三元运算,一句话的事。
别跑,点个赞再走
网友评论