元组 将字符串转化成元组
# s = "car"
# s1 = tuple(s)
# print(type(s1))
#result :
#tuple
人不变心变 就是元组里的列表ID不变 元组大框里面的ID变
# l1 = [1, 2, 3, ['a', 'v']]
# l2 = tuple(l1)
# l2[3][1] = 'o'
# print (l2)
# print(id(l2[3]))
# print(id(l1[3]))
#
# print(id(l2))
# print(id(l1))
# result:
# 140104303701640
# 140104303701640
# 140104303350712
# 140104302816712
多变量一起赋值 并交换值 (注意赋值的时候看右边的)
a,b = 1,2
a,b = b,a
print(a)
print(b)
#result
2
1
# a = [('a','1'),('b','2')]
# b = ['a1','b2']
# a1 = dict(a)
# b2 = dict(b)
# print(a1)
# print(b2)
#
# print(a1 == b2)
# print(a1 is b2)
# result:
# {'a': '1', 'b': '2'}
# {'a': '1', 'b': '2'}
# True
# False
并行迭代 如果列表长度不一样选最短的
# for i,x in zip (['a','b'],[1,2]):
# print(i,'---',x)
# result:
# a --- 1
# b --- 2
for i,x in zip (['a','b','c'],[1,2]):
print(i,'---',x)
# result:
# a --- 1
# b --- 2
两个列表-》迭代-》列表-》字典
a = ['xingqiyi','xingqier']
b = ['1','2']
print (zip(a,b))
c = list(zip(a,b))
print(c)
d = dict(c)
print (d)
result:
<zip object at 0x7fb35825dac8>
[('xingqiyi', '1'), ('xingqier', '2')]
{'xingqiyi': '1', 'xingqier': '2'}
判断对象是否能hash 列表不能hash
# print(hash(1))
# print(hash('asdf'))
# print(hash((1,2)))
# print(hash([1,3]))
#
# result:
# 1
# -96696562774008768
# 3713081631934410656
# TypeError: unhashable type: 'list'
get方法
info_dict = {"name":"xiaoguo","age": "18"}
1.####na = info_dict["name"]
# print(na)
# result :
# xiaoguo
2.####age = info_dict.get('aaa','gg')
# print (age)
# age1 = info_dict.get('age')
# print (age1)
# result:
# gg
# 18
3.
info_dict = {"name":"xiaoguo","age": "18"}
keys = info_dict.keys() 或 values= info_dict.values()
print (keys) print(list(values))
print (list(keys))
result:
dict_keys(['name', 'age'])
['name', 'age']
4.
info_dict = {"name":"xiaoguo","age": "18"}
items = info_dict.items()
print(list(items))
result:
[('name', 'xiaoguo'), ('age', '18')]
5.
info_dict = {"name":"xiaoguo","age": "18"}
for key in info_dict.keys():
print(key)
for value in info_dict.values():
print(value)
# result:
# name
# age
#
# xiaoguo
# 18
for key,value in info_dict.items():
print(key,'---',value)
# result:
# name --- xiaoguo
# age --- 18
定义一个字典 并将info_dict的字典加入到新的字典里 ( 定义新字典的方式:d = {} 往字典里添加元素d['a'] =1 d[''b]=2)
info_dict = {"name":"xiaoguo","age": "18"}
info_new_dict = {}
for key,val in info_dict.items():
print (key,'--',val)
info_new_dict[key]=val
print(info_new_dict)
result:
name -- xiaoguo
{'name': 'xiaoguo'}
age -- 18
{'name': 'xiaoguo', 'age': '18'}
setdefault的应用 列表有append的方法
data=[('animal','xiaoguo'),('zhiwu','hua')]
dice={}
for (key,val) in data:
dice.setdefault(key,[]).append(val)
print(dice)
{'animal': ['xiaoguo']}
{'animal': ['xiaoguo'], 'zhiwu': ['hua']}
from collections import defaultdict
data=[('animal','xiaoguo'),('zhiwu','hua')]
dd=defaultdict(list)
print(dd)
for (key, value) in data:
print(dd[key])
dd[key].append(value)
print(dd)
result:
defaultdict(<class 'list'>, {})
[]
defaultdict(<class 'list'>, {'animal': ['xiaoguo']})
[]
defaultdict(<class 'list'>, {'animal': ['xiaoguo'], 'zhiwu': ['hua']})
高效设置set集合和转换
s1 = set()
print(s1)
result:
set()
添加元素
In [11]: s2 = {12,3,4,5,6,}
In [12]: s2.add('n')
In [13]: s2
Out[13]: {12, 3, 4, 5, 6, 'n'}
删除元素In
[15]: s2.remove('n')
In [16]: s2
Out[16]: {4, 5, 6, 12}
随机删一个In
[14]: s2.pop()
Out[14]: 3
多级菜单 enumerate
data=[['zhujiinfo','func','aaa'],['mem','func','bbb']]
dic={}
for (i,items) in enumerate(data,1):
print(i,items)
dic.update({i:{'title':items[0],'func':items[1],'next_menu':items[2]}})
print(dic)
print(dic.get(1).get('func'))
result:
1 ['zhujiinfo', 'func', 'aaa']
2 ['mem', 'func', 'bbb']
{1: {'title': 'zhujiinfo', 'func': 'func', 'next_menu': 'aaa'}, 2: {'title': 'mem', 'func': 'func', 'next_menu': 'bbb'}}
func
动态参数 *args
#position args
# def xiaoguo(*a):
#
# print(a)
#
# li = [1,2,3,4]
# xiaoguo(li)
# xiaoguo(*li)
result:
([1, 2, 3, 4],)
(1, 2, 3, 4)
#关键字弄成字典
# def print_keyargs(**kwargs):
# print(kwargs)
# print_keyargs(ip=22,host_name='dbserver2')
result :
{'ip': 22, 'host_name': 'dbserver2'}
注释 x=a 上方'''回车
# def foo(a,b):
# '''
# :param a:
# :param b:
# :return:
# '''
# x=a
# for i in range(10):
# if i < 3:
# inp = int(input("请输入数字>>:").strip())
# if inp == 18:
# print("你赢了")
# break
# elif inp > 18:
# print("高了")
# else:
# print("低了")
# else:
# # inp1 = int(input("是否继续(Y/N)").strip())
# inp1 = input("是否继续(Y/N)").strip()
# if inp1 == 'Y':
# for a in range(10):
# if a < 3:
# inp2 = int(input("请继续输入>>:").strip())
# if inp2 == 18:
# print("你赢了")
# break
# elif inp2 > 18:
# print("高了")
# else:
# print("低了")
# if inp1 == 'N':
# print("Game over")
# break
sys模块:用于提供对python解释权的系统环境相关操作
import subprocess
# ret = subprocess.getoutput('ls /')
# print(ret.split('\n')[1:])
# result:['boot', 'dev', 'dirname', 'etc', 'home', 'lib', 'lib64', 'media', 'mnt', 'opt', 'proc', 'root', 'run', 'sbin', 'srv', 'sys', 'tmp', 'usr', 'var']
# print(subprocess.getstatusoutput('date'))
#======================================================
import subprocess
status,ret = subprocess.getstatusoutput('date')
print(type(status))
if not status:
print(ret)
#result:
# <class 'int'>
# Mon Jun 11 17:42:45 CST 2018
匿名函数
print((lambda x,y: x if x> y else y)(101,102))
网友评论