python 列表/字典/集合的方法

 

 列表:

# -*- coding: utf-8 -*-
import copy
names = ["aa","bb","cc","dd",]



'''
查询
'''
#切片

print(names[1:3])


# 取最后一个元素
print(names[-1])

#取 第二个元素之后的所有元素
print(names[2:])

#每隔一个元素取一个
print("间隔取值:", names[::2])

'''
添加
'''

#追加 一个元素
names.append("ee")
print(names)

# 插入一个元素
names.insert(2, "ff")
print(names)


'''
删除
'''
# 通过value 删除
names.remove("dd")
print("delete",names)

# 通过下标删除
del names[0]
print("delete index :",names)

# 删除最后一个元素,也可指定下标删除指定下标的元素
names.pop()
print("delete pop",names)
'''
修改
'''

names[2] = "gg"
print(names)

#获取index 
print(names.index("bb" ))

names.append("ee")
names.append("ee")
#获取一个元素在列表中的个数
print("ee 的数量:",names.count("ee"))


# 反转列表
names.reverse()
print(names)

# 排序
names.sort()
print(names)

# 合并连个list
name2 = [1,2,3]
names.extend(name2)
print(names)


#copy 3种方法
test = ["qq","ww","ee","rr",[1,2,3]]
test1 = test.copy()
test2 = test[:]
test3 = list(test)
print("test2 :",test2)
#修改 test 列表中子列表的值
test[4][0]=5
print("test2 :",test2)
'''
我们看到,当修改test 子列表的值以后,test2的子列表的值也发生了改变,
这是因为test 的子列表实际存储的是子列表在内存中的地址,而test与test2 指向同一个地址,当地址的数据发送改变,
test2 的数据也发生了改变

浅copy 有的场景非常有用,比如 有一瓶水,两个人喝,两个人消耗同一瓶水,但是两个人的名字不一样:

source = [name,['water',100]]
p1 =  source.copy()
p2 =  source.copy()

p1[0] = "小明"
p2[0]="旺财"

#假如小明喝了10单位的 水
p1[1][1] = 90

#旺财看水的时候就剩90 单位的水了
'''
#完全copy 要导入 copy ,使用下边的方法
test2 = copy.deepcopy(test)
test[4][1] = 77
print(test)
print(test2)
 


#获取 列表的长度


print(len(names))

#删除 name2 这个列表
#del name2
#print(name2)
列表

字典:

# -*- coding: utf-8 -*-

'''
1.字典是无序的
2.字典的key是唯一的,所以可以去重

'''

#定义字典
info = {
        "stu1":"xiaoQiang",
        "stu2":"wangcai",
        "stu3":"wangwang",
        
        }

print("1 :",info)

#修改
info["stu1"]="小强"

print("modify :",info)


#update方法是将两个字典进行合并,如果有重复的key,则会使用update 传的字典的值进行更新
b={
   "stu1":"aa",
   "stu22":"bb",
   "stu23":"cc",
   }
info.update(b)
print("update :",info)

#删除 的两种方法
del info["stu2"]
print("3 :",info)

info.pop("stu3")
print("4 :",info)


info = {
        "stu1":"xiaoQiang",
        "stu2":"wangcai",
        "stu3":"wangwang",
        
        }


#遍历
for k in info:
    print(k,"  ",info[k])


#获取
print("5 ",info.get("stu1"))



#获取所有的 values
print(info.values())

#获取所有的keys
print(info.keys())

#将字典转换成列表
print(info.items())


#初始化一个新的字典 结果为{8: 'test', 9: 'test', 7: 'test'}
c=dict.fromkeys([7,8,9],"test")
print(c)
字典

集合:

# -*- coding: utf-8 -*-

'''
1.集合中没有重复的数据,可以去重
2.集合是无序的
'''

list =[1,1,9,6,8,7,5,5,4]

list_1 = set(list)
print(list_1)


list_2 = set([1,6,7,8,12,3,56])

#获取交集 结果 {8, 1, 6, 7}
print("交集:")
print(list_1.intersection(list_2))
print(list_1 & list_2)


#并集 , 结果 {1, 3, 4, 5, 6, 7, 8, 9, 12, 56}
print("并集:")
print(list_1.union(list_2))
print(list_1 | list_2)



#差集, 结果{9, 4, 5}
print("差集:")
print(list_1.difference(list_2))
print(list_1-list_2)



#子集 结果为 false
print(list_1.issubset(list_2))



#获取两个集合中没有重叠的部分 {3, 4, 5, 9, 12, 56}
print(list_1.symmetric_difference(list_2))
print(list_1 ^ list_2)



#没有交集返回true
print(list_1.isdisjoint(list_2))


#添加一个元素, 结果 {1, 4, 5, 6, 7, 8, 9, 22}
list_1.add(22)
print(list_1)


list_1.remove(22)
print(list_1)


#获取集合长度
print(len(list_1))



#检查x是否是集合的成员 结果为true , 列表集合字符串都可以用这个方法
x=5
print(x in list_1)

#检查x是否不是集合的成员 结果为false
print(x not in list_1)


#删除集合中的一个元素,如果元素不存在不会报错而remove 会报错
list_1.discard("a")
集合
原文地址:https://www.cnblogs.com/gaizhongfeng/p/7514692.html