zoukankan      html  css  js  c++  java
  • Python list,tuple,dict,set高级变量常用方法

    list列表

    增加

    1. append 在列表中追加,一次只能加一个
    2. insert 按索引插入,一次只能插一个
    3. extend 迭代追加到列表中
    list1 = [1, 2, 3]
    list2 = [4, 5, 6]
    list1.append(2)
    print(list1)
    list1.insert(1, 4)
    print(list1)
    list1.extend(list2)
    print(list1)
    

    输出:

    [1, 2, 3, 2]
    [1, 4, 2, 3, 2]
    [1, 4, 2, 3, 2, 4, 5, 6]
    

    删除

    1. remove 按照元素值删除,一次只能删除一个
    2. pop 按索引删除,也可以按切片跟步长删除,默认删除最后一个(输出返回值)
    3. clear 清空列表
    4. del 删除整个列表
    list1 = [1, 2, 3, 4, 5, 6]
    list1.remove(3)
    print(list1)
    list1.pop()
    print(list1)
    list1.pop(2) #或者del list1[2]不推荐
    print(list1)
    list1.clear()
    print(list1)
    del list1
    print(list1)
    

    输出:

    [1, 2, 4, 5, 6]
    [1, 2, 4, 5]
    [1, 2, 5]
    []
    NameError: name 'list1' is not defined
    

    修改

    1. 按索引去改
    2. 按切片步长去改
    list1 = [1,2,3,4,5,6]
    list1[2] = 9
    print(list1)
    list1[1:4] = [11,12,13]
    print(list1)
    

    输出:

    [1, 2, 9, 4, 5, 6]
    [1, 11, 12, 13, 5, 6]
    

    查询

    1. 按索引,切片加步长去查
    2. 用for循环查
    list1 = [1,2,3,4,5,6]
    list2 = list1[0:5:2]
    print(list2)
    for i in list1:
    	print(i)
    

    输出:

    [1, 3, 5]
    1
    2
    3
    4
    5
    6
    

    其他方法

    len() 查询列表长度
    count 统计某个元素出现的个数
    index 通过元素找索引
    sort 排序列表,括号里接reverse=True就是从大到小
    reverse 倒叙列表
    enumerate 用for循环,给序列加序号

    list1=[1,2,3,4,5,6,7,4,5,4]
    print(len(list1))
    print(list1.count(4))
    print(list1.index(2))
    print(list1.index(4)) #默认显示第一个匹配的元素的索引
    list1.sort(reverse=True)
    print("降序:", list1
    for index,value in enumerate(list1):
    	print("{0},{1}".format(index,value))
    

    输出:

    10
    3
    1
    3
    降序: [7, 6, 5, 5, 4, 4, 4, 3, 2, 1]
    0,7
    1,6
    2,5
    3,5
    4,4
    5,4
    6,4
    7,3
    8,2
    9,1
    

    tuple元组

    tuple元组与列表类似,不同之处在于元组的元素不能修改

    查询

    1. 按索引去查
    2. 按切片步长去查
    tup1 = ('Google', 'Runoob', 1997, 2000)
    tup2 = (1, 2, 3, 4, 5, 6, 7 )
    print ("tup1[0]: ", tup1[0])
    print ("tup2[1:5]: ", tup2[1:5])
    

    输出:

    tup1[0]:  Google
    tup2[1:5]:  (2, 3, 4, 5)
    

    修改

    tup1 = (12, 34.56);
    tup2 = ('abc', 'xyz') #tup1[0] = 100 该方法是非法的
    tup3 = tup1 + tup2; #创建一个新的元组
    print (tup3)
    

    输出:

    (12, 34.56, 'abc', 'xyz')
    

    删除

    元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
    列表和元祖的转换(如想要保护数据,可把list转换成元祖,如修改可转成列表)

    tup = ('Google', 'Runoob', 1997, 2000) 
    print (tup)
    del tup;
    print ("删除后的元组 tup : ")
    print (tup)
    

    输出:

    NameError: name 'tup' is not defined
    

    dict字典

    增加

    正常方式写入即可,有则不动,无则增加

    dict1 = {"name": "小明", "age": 18, "height": 1.75}
    dict1["wegit"] = 64.5
    print(dict1)
    

    输出:

    {'name': '小明', 'age': 18, 'height': 1.75, 'wegit': 64.5}
    

    修改

    1. update 把另一个键值队合并到一个,相同的覆盖,没有的添加
    dict2 = {"name": "小华", "age": 18, "curriculum": "English"}
    dict1.update(dict2)
    print(dict1)
    

    输出:

    {'name': '小华', 'age': 18, 'height': 1.75, 'wegit': 64.5, 'curriculum': 'English'}
    

    删除

    1. pop 按key删
    2. popitem 删除最后一个
    3. clear 清空
    4. del 删除key或全部删除
    dict1 = {'name': '小华', 'age': 18, 'height': 1.75, 'wegit': 64.5, 'curriculum': 'English'}
    dict1.popitem()
    print(dict1)
    dict1.pop("wegit")
    print(dict1)
    del dict1["name"]
    print(dict1)
    dict1.clear()
    print()
    

    输出:

    {'name': '小华', 'age': 18, 'height': 1.75, 'wegit': 64.5}
    {'name': '小华', 'age': 18, 'height': 1.75}
    {'age': 18, 'height': 1.75}
    {}
    

    查询

    1. 对键遍历
    2. 对键和值遍历
    d = {'name1' : 'pythontab', 'name2' : '.', 'name3' : 'com'}
    for key in d:
        print (key, ' value : ', d[key])
    

    输出:

    name1 value : pythontab
    name2 value : .
    name3 value : com
    
    for key, value in d.items():
        print (key, ' value : ', value)
    

    输出:

    name1 value : pythontab
    name2 value : .
    name3 value : com
    

    set集合

    增加

    1. add 添加一个字符串
    2. update 迭代着添加
    b = {'b', 'c'} #定义集合
    print(b)
    a = set('boy') #定义集合
    print(a)
    a.add('python')
    print(a)
    a.update('update')
    print(a)
    

    输出:

    {'b', 'c'}
    {'b', 'y', 'o'}
    {'b', 'python', 'y', 'o'}
    {'b', 'a', 'python', 'u', 'd', 't', 'e', 'p', 'o', 'y'}
    

    删除

    1. remove 按元素删除
    2. discard 集合的删,跟remove删是一样的,没有不会报
    3. pop 随机删除一个元素,有返回值
    4. clear 清空集合
    5. del 删除整个集合
    a.remove('python')
    print(a)
    a.discard('python') #已经删除python元素了,再用discard删除不会报错
    print(a)
    a.pop()
    print(a)
    a.clear()
    print(a)
    del a
    print(a)
    

    输出:

    {'b', 'a', 'u', 'd', 't', 'e', 'p', 'o', 'y'}
    {'b', 'a', 'u', 'd', 't', 'e', 'p', 'o', 'y'}
    {'a', 'u', 'd', 't', 'e', 'p', 'o', 'y'}
    set()
    NameError: name 'a' is not defined
    

    交集【& or intersection】

    x = {"apple", "banana", "cherry"}
    y = {"google", "runoob", "apple"}
    z = x.intersection(y) 
    print(z)
    c = x & y
    print(c)
    

    输出:

    {'apple'}
    {'apple'}
    

    并集【| or union】

    x = {"apple", "banana", "cherry"}
    y = {"google", "runoob", "apple"}
    z = x.union(y) 
    print(z)
    c = x | y
    print(c)
    

    输出:

    {'cherry', 'runoob', 'google', 'banana', 'apple'}
    {'cherry', 'runoob', 'google', 'banana', 'apple'}
    

    差集【- or difference】

    x = {"apple", "banana", "cherry"}
    y = {"google", "microsoft", "apple"}
    z = x.difference(y) 
    print(z)
    z1 = y.difference(x)
    print(z1)
    c = x - y
    print(c)
    c1 = y - x
    print(c1)
    

    输出:

    {'cherry', 'banana'}
    {'google', 'microsoft'}
    {'cherry', 'banana'}
    {'google', 'microsoft'}
    

    反交集【^ or symmetric_difference】

    返回两个集合中不重复的元素

    x = {"apple", "banana", "cherry"}
    y = {"google", "microsoft", "apple"}
    z = x.symmetric_difference(y) 
    print(z)
    m = x ^ y
    print(m)
    

    输出:

    {'microsoft', 'google', 'cherry', 'banana'}
    {'microsoft', 'google', 'cherry', 'banana'}
    

    子集【< or issubset】

    a = {1,2}
    b = {1,2,3,4}
    print(a.issubset(b)) #a是b的子集
    print(a < b)
    

    输出:

    True
    True
    

    超集【> or issuperset】

    a = {1,2}
    b = {1,2,3,4}
    print(b.issuperset(a)) #b是a的超集
    print(b > a)
    

    输出:

    True
    True
    

    frozenset 不可变集合

    a = frozenset("abcd")
    print(a)
    a.add("d")
    

    报错:AttributeError: 'frozenset' object has no attribute 'add'
    输出:

    frozenset({'b', 'a', 'd', 'c'})
    
  • 相关阅读:
    4Sum
    3Sum Closest
    3Sum
    Longest Common Prefix
    Roman to Integer
    thinkphp3.2自定义配置文件
    centos7下git的使用和配置
    git 报错
    Git服务器安装详解及安装遇到问题解决方案
    centos GIT安装
  • 原文地址:https://www.cnblogs.com/vito-lee/p/11933444.html
Copyright © 2011-2022 走看看