#list 列表
#定义一个列表
#li = [1, 12, 9, "age", ["石文", ["19", 10], "麦郎"], "alex", True]
#append()原来的值后面追加
li = [11,22,33,22,55]
li.append(4)
li.append("alex")
li.append([1234,4524])
print li
#clear()清空列表 备注:只有在python3中才能使用
li = [11,22,33,22,55]
li.clear()
print(li)
#copy()拷贝,浅拷贝
#说明
"""深浅拷贝:对于数字、字符串而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址
对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的
浅拷贝:在内存中只额外创建第一层数据
import copy
n1 = {"k1":"wu","k2":123,"k3":["alex",42]}
n2 =copy.copy(n1)
深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)
import copy
n1 = {"k1":"wu","k2":123,"k3":["alex",42]}
n2 =copy.deepcopy(n1) """
#count()统计元素出现的次数
v = li.count(55)
print(v)
#extend()函数用于在列表末尾一次性追加另一个序列中的多个值
li.extend([67,'的角色'])
print(li)#[11,22,33,22,55,67,'的角色']
li = [11,22,33,22,55,10,2]
li.append([9898,"不啊速度"])
#print(li)
li.extend([9898,"不啊速度"])
for i in [9898,"不啊速度"]:
li.append(i)
li.extend("不啊速度")
print (li)
#index()根据值获取当前索引位置(左边优先)
v = li.index(11)
print (v)
#insert(索引,value)在指定索引位置插入元素
li.insert(6,99)
print (li)
#pop()删除某个值(指定索引删除,默认最后一个)并获取删除的值
v = li.pop(1)
print (v) #删除的数值
print (li)
#remove()删除列表中的指定值,左边优先
li.remove(22)
print (li)
del li[2]
print (li)
#reverse()将列表进行翻转
li.reverse()
print(li)
#sort()列表的排序 reverse =True翻转的排序
li.sort(reverse =True)
print(li)
########################### 深灰魔法 ##############
# 1、列表格式
# 2、列表中可以嵌套任何类型
# 中括号括起来
# 列表中的元素可以是数字、字符串、列表、布尔值等
# "集合"内部放置任何东西
print(li[3]) #索引取值
print(li[2:-1]) #切片
for item in li:
print (item)
#列表中的元素可以修改
li = [1, 12, 9, "age", ["石文", ["19", 10], "郎"], "alex", True]
li[2] = 120
print(li)
li[3] = [11,'ds',45,'w']
print(li)
#in操作 判断是否在列表中
v = True in li
print(v)
s = "pouaskdfauspdfiajsdkfj"
s = 123
a = "123"
str(a)
#字符串转换为列表
li = list("asdfasdfasdf")
print(li)
s = "pouaskdfauspdfiajsdkfj"
new_li = list(s)
print(new_li)
#列表转换为字符串
li = [11,22,33,"123","alex"]
print(str(li))
#直接使用字符串join方法:列表中的元素中有字符串python3
v = " ".join(li)
print(v)
#字符串创建后,不可修改
v = "alex"
v =v.replace('a','ed')
print(v)
#列表,有序,元素可以被删除
#元组,元素不可被修改,布恩那个被增加或者删除
# tuple
tu = (11,22,33,44,22)
print(tu.count(22)) #count()元素的次数
print(tu.index(33)) #index()定位元素的位置
#书写格式
tu = (111,"alex",(222,"eee"),[("sd",11),True,2355])
# 一般写元组的时候,推荐在最后加入
# 元素不可被修改,不能被增加或者删除
v = tu[0]
print(tu[0:8])
for item in tu:
print(item)
#转换
s = "asdfasdf0"
li = ["asdf","asdfasdf"]
tu = ("asdf","asdf")
v = tuple(s)
print(v)
print(tuple(li))
print(list(tu))
print("_".join(tu))
li = ["asdf","asdfasdf"]
li.extend((11,58,47,55))
print(li)
#元祖的一级元素不可修改/删除/增加
tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
v = tu[3][0][0]
print(v)
v=tu[3]
print(v)
tu[3][0] = 567
print(tu)
#字典
# dict
dict = {"k1":'v1',"k2":"v2"}
# formkeys()根据序列,创建字典,并指定统一的值
v = dict.fromkeys(["k1",123,"www"],112)
print(v)
#get()根据key获取值,key不存在时,可以指定默认值(None)
v = dict['llee']
print(v)
v = dict.get('k1',1111)
print(v)
#删除获取的值
dic = {"k1":'v1',"k2":"v2"}
v = dict.pop('k1',90)
print(dict,v)
#popitem()随机返回并删除字典中的一对键和值
k = dict.popitem()
print (dict,v,k)
#setdefault()不设置 已存在 获取当前key对应的值
# 设置 不存在 获取当前key对应的值
v = dic.setdefault('123',None)
print(dic,v)
#更新
dic.update({'k1': '111111','k3': 123})
print(dic)
dic.update(k1=123,k3=345,k5="asdf")
print(dic)
# items() 函数以列表返回可遍历的(键, 值) 元组数组
# keys() 函数以列表返回一个字典所有的键。
print(dic.items())
print(dic.keys())
values() 函数以列表返回字典中的所有值
print(dic.values())
# 字典的value可以是任何值
# 布尔值(1,0)、列表、字典不能作为字典的key
#del字典支持删除
del info['k1']
print(info)
#支持for 循环
for item info.keys()
for item info.values()
for k,v info items()
print(k,v)