散落的尘埃_ / Python / python——list、dict等常见转化操作

分享

   

python——list、dict等常见转化操作

2018-04-28  散落的尘...
# zip 创建键值对
keys = ['Name','Sex','Age']
values = ['Jack','Male','23']
print(dict(zip(keys,values)))
print(list(zip(keys,values)))
print([list(i) for i in zip(keys,values)]) # #用zip函数进行组合,然后把返回的每个元素转list

# 列表推导式:求1-100之间的偶数
c = [x for x in range(1,100) if x%2==0]
print(c)

# 判断其值真假
name = 'Tim'
langs = ['AS3','Lua','C']
info = {'name':'Tim','sex':'Male','age':23}

# if name !='' and len(langs)>0 and info != {}:
# print('All True!')
if name and langs and info:
print('All True!')

# 交互变量
a = 1
b = 3
# temp = a
# a = b
# b = temp
a, b = b, a
print('a=', a, 'b=', b)

# 说出下面list1,list2,list3的输出值
# 许多人会错误的认为 list1 应该等于 [10] 以及 list3 应该等于 ['a']。认为 list 的参数会在 extendList 每次被调用的时候会被设置成它的默认值[];
# 尽管如此,实际发生的事情是,新的默认列表仅仅只在函数被定义时创建一次。随后当 extendList 没有被指定的列表参数调用的时候,其使用的是同一个列表;
# 这就是为什么当函数被定义的时候,表达式是用默认参数被计算,而不是它被调用的时候;
# 因此,list1和list3 是操作的相同的列表。而list2是操作的它创建的独立的列表(通过传递它自己的空列表作为list参数的值);
# 把list置为None就可以避免一些麻烦了;

# def extendList(val,list=[]):
def extendList(val, list=None):
if list is None:
list = []
list.append(val)
return list
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
print("list1 = %s" % list1)
print("list2 = %s" % list2)
print("list3 = %s" % list3)

# 下面代码会不会报错
# 不会报错,而是会输出一个[],并不会导致一个IndexError;
list4 = ['a', 'b', 'c', 'd', 'e']
print(list4[10:])

# 写一个函数,输入一个字符串。返回倒序排列结果
def string_reversel(text="adfffgfdg"):
return text[::-1]
print(string_reversel())

# 按升序合并如下2个list,并出去重复的元素
L1 = [1, 2, 3, 4]
L2 = [3, 4, 5, 6]
print(list(set(L1+L2)))
# 用其中一个list 与 另一个去除在前面list后的元素组成的list
L3 = L1 + [x for x in L2 if x not in L1]
print(L3)
# 合并2个list生成dict(一个为keys,一个为values),先对2个list用zip函数,最后转换成dict
keys = ['a', 'b', 'c']
value = [1, 2, 3]
dictionary = dict(zip(keys, value))
print(dictionary)
# dict转换成元素为tuple的list,用dict的items函数
print(dictionary.items())
# 2个list元素分别相加生成求和后的list,用map和operator.add
from operator import add
L4 = list(map(add, L1, L2))
print(L4)
# 或者用zip和sum函数
L5 = [sum(x) for x in zip(L1,L2)]
print(L5)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多

    ×
    ×

    ¥.00

    微信或支付宝扫码支付:

    开通即同意《个图VIP服务协议》

    全部>>