Python 学习之路-06 内置结构 list set dict tuple-1

课外话题 传值与传址

# 传值与传址
'''如果在调用函数的时候,传递的参数是一个对象,那么传递的是参数的存储的内存空间地址.那么在任意地方改变参数值后,其他指向该地址的变量的值都将
改变
'''
def a(n):
    n[2] = 100
    print(n)
    return None

def b(n):
    n += 100
    print(n)
    return None

an = [1,2,3,4,5,6]
bn = 9

print(an)
a(an)
print(an)

print(bn)
b(bn)
print(bn)
[1, 2, 3, 4, 5, 6]
[1, 2, 100, 4, 5, 6]
[1, 2, 100, 4, 5, 6]
9
109
9

关于列表的函数

  • append 在列表的末尾追加一个值

    • list.append(value)
  • insert 在指定位置插入一个值

    • list.insert(index,value)
    • 在下标为index的位置插入一个值,index下标后面的值往后顺延
  • del 删除

    • 删除指定的值
  • pop 拿出

    • 拿出最后一个值,并返回拿出的值
  • remove 删除

    • 在列表中删除指定的值(前提是列表中有这样的一个值)
    • 在使用remove的时候,最好现行判断要删除的值是否在list中
  • clear 清空

    • 将列表中的数据清空
  • reverse 反转

    • 将列表中的值进行反转(头变尾 尾变头)
  • extend 拼接

    • 将一个列表直接拼接到另一个列表的后面
  • count 查找列表中指定值的个数

    • 查找列表中指定值的个数
  • copy 拷贝(浅拷贝)

    • 将列表拷贝到另外一个内存地址中
    • b = a.copy()
# insert
a = [11,22,33,44,55]
a.insert(1,200)
print(a)

# del
del a[1]
print(a)

#pop
indexValue = a.pop()
print("indexValue=",indexValue)

# remove
a.remove(44)
print(a)

# clear
a.clear()
print(a)

# reverse
a = [1,2,3,4,5,6]
print(a)
a.reverse()
print(a)

# extend
b = [7,8,9,0]
a.extend(b)
print(a)

# count
index = a.count(1)
print(index)
[11, 200, 22, 33, 44, 55]
[11, 22, 33, 44, 55]
indexValue= 55
[11, 22, 33]
[]
[1, 2, 3, 4, 5, 6]
[6, 5, 4, 3, 2, 1]
[6, 5, 4, 3, 2, 1, 7, 8, 9, 0]
1
# copy
a = [123,345,567,789]
print("a.value",a)
print("a.id=",id(a))
print("*"*20)
b = a.copy()
print("b.value",b)
print("b.id=",id(b))
a.value [123, 345, 567, 789]
a.id= 139637277773640
********************
b.value [123, 345, 567, 789]
b.id= 139637278306440
#深拷贝与浅拷贝的区别
# 浅拷贝的时候,只是拷贝列表的第一层,如果列表中还包含了其他的对象(list.set等)则不会进行拷贝而是进行地址引用
a = [1,2,3,4,[100,200,300]]
b = a.copy()
print("a.id=",id(a))
print("b.id=",id(b))
print("*" * 20)
print("a.value=",a)
print("b.value=",b)
print("*" * 20)
print("a[4].id",id(a[4]))
print("b[4].id",id(b[4]))
print("*" * 20)
b[4][1] = 666
print("a.value=",a)
print("b.value=",b)
a.id= 139637277515912
b.id= 139637277433736
********************
a.value= [1, 2, 3, 4, [100, 200, 300]]
b.value= [1, 2, 3, 4, [100, 200, 300]]
********************
a[4].id 139637278288904
b[4].id 139637278288904
********************
a.value= [1, 2, 3, 4, [100, 666, 300]]
b.value= [1, 2, 3, 4, [100, 666, 300]]

元组 tuple

  • 可以将元组看作一个不能更改的list

元组的创建

  • 使用() 来创建元组
    • t = ()
  • 元组的特性
    • 是有序列表
    • 元组的值可以访问,但是不能新增\修改\删除等
    • 元组的数据可以是任意类型
    • 总之,list所有特性,除了可修改以外,元组都具有
    • 也就意味着,list具有的一些操作.如:索引\分片\序列相加\相乘\成员资格等都一模一样
# 元组的创建
t = ()
print(type(t))
# 创建一个值的元组
t = (1,)
print(type(t))
print(t)
t = 1,
print(type(t))
print(t)

# 多个值
t = (1,2,3,4,5)
print(type(t))
print(t)

t = 1,2,3,4,5
print(type(t))
print(t)

# list转tuple
a = [1,2,3,4,5,6]
t = tuple(a)
print(type(t))
print(t)


(1,)

(1,)

(1, 2, 3, 4, 5)

(1, 2, 3, 4, 5)

(1, 2, 3, 4, 5, 6)
# 元组相加 (不是在原来的空间中进行值的改变,而是成为了一个新的对象)
t1 = (1,2,3,4,5)
t2 = (6,7,8,9,0)

t1 += t2
print(t1)
(1, 2, 3, 4, 5, 6, 7, 8, 9, 0)
# 元组相乘
t1 = (1,2,3,4,5)
t1 = t1 * 3
print(t1)
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)

你可能感兴趣的:(Python 学习之路-06 内置结构 list set dict tuple-1)