zoukankan      html  css  js  c++  java
  • python-数据装换

    list

    list to tuple

    li = ['test1', 'test2', 'test3', 123]
    # tuple
    print(tuple(li))  # ('test1', 'test2', 'test3', 123)
    
    

    list to str

    li = ['test1', 'test2', 'test3']
    # str
    print(str(li), type(str(li)))  # ['test1', 'test2', 'test3'] <class 'str'>
    # join 列表中不能有数字
    print(" ".join(li), type(" ".join(li)))  # test1 test2 test3 <class 'str'>
    

    tuple

    tuple to list

    tuple1 = ("test1", "test2", "test3")
    tuple2 = (1, 2, 3)
    # list
    list_tuple = list(tuple1)
    print(list_tuple)  # ['test1', 'test2', 'test3']
    print(list(tuple2))  # [1, 2, 3]
    
    

    tuple to str

    tuple1 = ("test1", "test2", "test3")
    # str
    str_ = str(tuple1)
    print(str_, type(str_))  # ('test1', 'test2', 'test3') <class 'str'>
    # join
    print(" ".join(tuple1))  # test1 test2 test3
    
    
    tuple2 = ("test1", "test2", "test3", 2)
    # 在运用join方法时,元组里面的元素必须的字符串
    # print(" ".join(tuple2))  # TypeError: sequence item 3: expected str instance, int found
     
    # 数字组成的元组也是不能使用join,必须是字符串
    tuple3 = (1, 2, 3)
    # print(" ".join(tuple3))  # TypeError: sequence item 0: expected str instance, int found
    

    dict

    dict to list

    dic = {"name": "Yang", "age": 123}
    print(list(dic)) # ['name', 'age']  返回键
    

    dict to tuple

    dic = {"name": "Yang", "age": 123}
    print(tuple(dic)) # ('name', 'age')  返回键
    

    dict to str

    dic = {"name": "Yang", "age": 123}
    print(str(dic))  # {'name': 'Yang', 'age': 123}
    print(' '.join(dic))  # name age
    

    str

    str to list

    s = "test"
    print(list(s))  #  ['t', 'e', 's', 't']
    s2 = "123abc"
    print(list(s2))  #  ['1', '2', '3', 'a', 'b', 'c']
    

    str to tuple

    s = "test"
    print(tuple(s))  # ('t', 'e', 's', 't')
    s2 = "123abc"
    print(tuple(s2))  # ('1', '2', '3', 'a', 'b', 'c')
    

    str to dict

    str2 = "{'key1':'valu1','key2':'valu2'}"
    dict2 = eval(str2)
    print(dict2, type(dict2))  # {'key1': 'valu1', 'key2': 'valu2'} <class 'dict'>
    
    
    

    常见的坑

    l1 = [11, 22, 33, 44, 55]
    将此列表索引为奇数位对应的元素全部删除.

    l1 = [11, 22, 33, 44, 55]
    # 将此列表索引为奇数位对应的元素全部删除.
    
    # 方法一:
    # del l1[1::2]
    # print(l1)
    
    # 方法二:错误示例:坑
    
    # 循环一个列表时,不要改变列表的大小.这样会影响你最后的结果.
    # for index in range(len(l1)):
    #     if index % 2 == 1:
    #         # index 奇数
    #         l1.pop(index)
    # print(l1)
    
    # 方法三
    # new_l = []
    # for index in range(len(l1)):
    #     if index % 2 == 0:
    #         new_l.append(l1[index])
    # # print(new_l)
    # l1 = new_l
    # print(l1)
    
    # 方法三:
    # for index in range(len(l1)-1,-1,-1):
    #     if index % 2 == 1:
    #         l1.pop(index)
    # print(l1)
    
    

    dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'name': 'alex'}
    将字典中的key中含有k元素的所有键值对删除.

    # 错误代码
    '''坑
    dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'name': 'Tom'}
    for key in dic:
        if 'k' in key:
            dic.pop(key)
    print(dic)  # untimeError: dictionary changed size during iteration
    '''
    # 循环一个字典时,不能改变字典的大小,这样会报错.
    
    l1 = []  # 存放满足条件的key
    for key in dic:
        if 'k' in key:
            l1.append(key)
    # print(l1)
    for key in l1:  # 在遍历key进行删除
        dic.pop(key) # 或 del dic[key]
    print(dic)
    
  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/yangchangjie150330/p/10489446.html
Copyright © 2011-2022 走看看