学习第五天

一.画出下列代码的内存图

1.

list01 = [1,2]
# 将列表地址赋值给list02
list02 = list01
# 改变的是列表的第一个元素
list01[0] = 100
print(list02[0])# 100

2.

list01 = [1,2]
# 将列表地址赋值给list02
list02 = list01
# 改变的是列表的第一个元素
list01 = [100]
print(list02[0])#

3.

list01 = [1,2]
# 将列表中元素复制一份
# list02 = list01[:]
# 将列表中元素复制一份
list02 = list01.copy()
list01[0] = 100
print(list02[0])#

4.

list01 = [1,[2,3]]
# 将列表中元素复制一份(只拷贝1层)
list02 = list01.copy() # 浅拷贝
list01[1][0] = 200
print(list02[1][0]) # ?200

5.

import copy
list01 = [1,[2,3]]
# 将列表中元素复制一份(只拷贝1层)
# list02 = list01.深拷贝()
list02 = copy.deepcopy(list01) # 深拷贝
list01[1][0] = 200
print(list02[1][0]) # ?2

二 .列表推导式

list01 = [3,5,6,7,9]
# 需求:创建新列表,每个元素是list01中的元素的平方
list02 = []
for item in list01:
    list02.append(item ** 2)

print(list02)

# 语法:[对变量的操作 for 变量名 in 可迭代对象]
list03 = [item ** 2 for item in list01]
list01 = [3,5,6,7,9]
# 需求:创建新列表,如果元素是偶数,则将每个元素的元素的平方存入新列表
list02 = []
for item in list01:
    if item % 2 == 0:
        list02.append(item ** 2)

list03 = [item ** 2 for item in list01 if item % 2 == 0]
print(list03)

三 .元组

1.如何创建元组

# 1. 创建空元组
t01 = ()
t02 = tuple()

# 2. 创建具有默认值的元组
t01 = (1,2,3)
t01 = tuple("abcd")
t01 = (1,2,[4,5])
print(t01)

2,.元组的修改

t01 = (1,2,[4,5])
t01[2] = 100  元组元素不能修改
t01[2][0] = 100 # 修改的是元素第三个元素(列表)的元素.

3.元组的获取

# 3. 获取元素(索引 / 切片)
print(t01[:2])

# 获取元组所有元素
for item in t01:
    print(item)

# 倒序获取元组所有元素
for i in range(len(t01)-1, -1,-1):
    print(t01[i])

4.元组和列表在同类型相加时的区别

t02 = ("a","b")
l02 = ["a","b"]

t03 = t02
l03 = l02

t02 += ("c","d") # 创建了新元组对象,改变了t02存储的地址.
l02 += ["c","d"] # 将["c","d"]追加到原列表中.

print(t02) # ('a', 'b', 'c', 'd')
print(t03) # ('a', 'b')
print(l03) # ['a', 'b', 'c', 'd']

5元组需要注意的

# 如果元组只有一个元素,必须多写一个逗号,否则视为普通对象也就是整数1,不是元组对象.
t04 = (1,)
print(t04)

三 .字典

1、创建字典

# 创建空字典
d01 = {}
d02 = dict()

d01 = {"a":"A","b":"B"}
# d01 = dict("ab") # 分不清key  value
d01 = dict([(1,2),(3,4)]) # {1: 2, 3: 4}

2.字典的如何增加元素

# 运行第一次则是增加
d01["c"] = "C"
# 运行第二次就变成修改,字典的key就有唯一性
d01["c"] = "CC"

3.读取字典元素

 读取元素(如果不存在则异常)
# 建议:在字典中读取元素,先判断存在,在进行读取.
if "d" in d01:
    print(d01["d"])

4.删除字典的元素

# 删除
del d01["c"]
print(d01)

5.获取字典的所有元素

# 获取字典中所有元素:
for key in d01:
    print(key)
    print(d01[key])

# 获取字典中所有记录(元组)
for item in d01.items():
    print(item[0]) # key
    print(item[1]) # value

for k,v in d01.items():
    print(k) # key
    print(v) # value

# 获取所有键
for k in d01.keys():
    print(k)

# 获取所有值
for v in d01.values():
    print(v)

6.字典的推导式

# key:数字   value:数字平方
# dic01 = {}
# for item in range(1,10):
#     dic01[item] = item ** 2
#
# print(dic01)
#
# dic01 = {item:item ** 2 for item in range(1,10)}

dic01 = {}
for item in range(1, 10):
    if item % 2 == 0:
        dic01[item] = item ** 2

dic01 = {item: item ** 2 for item in range(1, 10) if item % 2 == 0}
print(dic01)

 

posted @ 2019-04-08 22:33  爱吃西红柿的猫  阅读(292)  评论(0)    收藏  举报