#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
# https://www.cnblogs.com/wupeiqi/articles/5444685.html
# list 列表中迭代元素可以是数字,字符串,列表,布尔值,所有的都能放进去
# ”集合“ , 内部放置任何东西
# 切片的结果是一个列表
# 支持for循环和while循环
# 列表可以被修改
# 修改
# li[1:3] = [132,90]
# print(li)
# 删除
# del li[2:9]
# print(li)
# 字符串如果想转换列表,list("sdfsdfsaf") 内部使用for循环
# 列表转换成字符串,如果列表里面既有数字又有字符串那么只能通过for循环来解决
li = [11,22,33,55,'432','cntf']
s = ""
for i in li:
s = s + str(i)
print(s)
# 如果列表里面都是字符串那么可以通过join将其转换成字符串
li = ["3222", "cntf"]
v = "".join(li)
print(v)
# append clear copy count extend index insert pop remove reverse
# 元组, 元组是可迭代对象 元素不能被修改,不能被增加或删除
# tuple
tu = (111,22,33,44,)
# 一般写元组的时候在最后多加个逗号
# 索引,切片 for循环
for item in tu:
print(item)
s = "dsfwefsdfsgadgwere"
li = ["fukg", "cntf","dsfsdfswer"]
tu = ('232','54534',"dsfwe")
# 将字符串转换成元组
v = tuple(s)
print(v)
# 将列表转换成元组
v = tuple(li)
print(v)
# 将元组转换成列表
v = list(tu)
print(v)
# 当元组中都是字符串时可以使用join
v = "_".join(tu)
print(v)
# count 获取指定元素在元组中出现的次数
# index 获取索引位置
# 元组的一级元素不可被修改,删除,增加,但是里面有列表是可以被修改,增加,删除
# 字典
info = {"k1": "v1", # 键值对
"k2": "v2"
}
info = {
"k1": 28,
"k2": True,
"k3": [
22,
[],
(),
55,
77,
88,
{
'kk1': 'vv1',
'kk2': 'vv2',
'kk3': (11,33,44),
}
],
"k4": (555,999,444,888)
}
print(info)
# 布尔值(但是其值是1和0 True-1 False-0 ),列表,字典不能作为字典的key
info = {
1: 'diffeef',
"k3": 'erwww',
True: "66554",
(22,55): 8899
}
print(info)
# 字典支持删除,for循环
for item in info:
print(item)
for item in info.values():
print(item)
for item in info.keys():
print(item, info[item])
for k,v in info.items():
print(k,v)
# 字典 clear copy
# 根据序列,创建字典,并指定统一的值
# v = dict.fromkeys(["k1",1234,"888"], 4455)
# print(v)
# get 存在即显示,不存在显示None
# v = dic.get('k1', 333)
# print(v)
# keys values
# pop 指定某一个key进行删除,如果没有就添加指定的值
# popitem
dic = {
"k1": 'v1',
"k2": 'v2'
}
v = dic.setdefault('k23', '564')
print(dic,v)
dic.update(k1=3434,k3=443,k5='sfs')
print(dic)
# keys() values() items() get() update()
######################整理#####################
# 数字 int()
# 字符串 replace/find/join/strip/startswith/endswith/split/upper/lower/format
template = "I am {name}, age : {age}"
v = template.format(**{"name": "cntf", 'age': 28})
print(v)
# 列表
# append, extend, insert
# 索引,切片,循环
# 元组
# 忽略
# 索引,切片,循环 一级元素不能被修改,删除,增加
# 字典
# get/update/keys/values/items
# for 索引
# 可以判断某一个key是否在里面
# 布尔值
# bool(.....)
# 0 1
# None "" () [] 0 这些都是False
# append用于在列表中追加元素
li = ['cntf', 'eight', 'eric']
# li = list(['cntf', 'eight', 'eric'])
print(li)
liappend = li.append('fuck')
print(li)
print("这是测试时行不行")
print("=================list-append=============")
# count 用于统计某个元素在列表中出现的个数
li1 = ['cntf', 'eight', 'eric']
licount = li1.count('cntf')
print(licount)
print("=================list-count=============")
# extend 用于在列表末尾一次性追加另一个序列中的过个值
li2 = ['cntf', 'eight', 'eric']
li3 = ('fucking','shit','yeah')
liextend = li2.extend(li3)
print(li2)
li4 = ['ok1']
liextend1 = li2.extend(li4)
print(li2)
li5 = {'dsfsdf','dsfweww','japan','china'}
liextend2 = li2.extend(li5)
print(li2)
print("=================list-extend=============")
# extend 可以追加列表,元素和集合
# index 用于从列表中找出某个值,显示其所在的索引位置
li6 = ['cntf', 'eight', 'eric']
print(li6)
liindex = li6.index('eric')
print(liindex)
print("=================list-index=============")
# insert 用于在对应的索引位置插入元素
li7 = ['cntf', 'eight', 'eric']
print(li7)
liinsert = li7.insert(1,'hehe')
print(li7)
print("=================list-insert=============")
# pop 用于删除最后一个元素,也可以指定其中一个元素的索引进行删除
li8 = ['cntf', 'eight', 'eric']
print(li8)
lipop = li8.pop()
print(li8)
lipop1 = li8.pop(0)
print(li8)
print("=================list-insert=============")
# remove 移除其中一个元素
li9 = ['cntf', 'eight', 'eric']
print(li9)
liremove = li9.remove('eight')
print(li9)
print("=================list-remove=============")
# reverse
li10 = ['cntf', 'eight', 'eric']
print(li10)
lireverse = li10.reverse()
print(li10)
print("=================list-reverse=============")
# tuple count inex
ages = (11,22,33,44,55,66,77,99)
print(ages)
print(ages.count(99))
# 显示元组中函数有的元素有几个
ages1 = ages.index(77)
print(ages1)
# 显示元组中对应元素所在的索引位置
# 字典(无序)
person = {"name": "mr.woo", "age": 28}
print(person)
# clear 清除内容
person1 = {"name": "mr.woo", "age": 28}
print(person1)
personclear = person1.clear()
print(person1)
print(personclear)
# copy 浅拷贝
person2 = {"name": "mr.woo", "age": 28}
print(person2)
personcopy = person2.copy()
print(personcopy)
# get 根据key获取值,d是默认值
person3 = {"name": "mr.woo", "age": 28}
print(person3)
personget = person3.get('age')
print(personget)
# has_key 是否有key 适用python2
# person4 = {"name": "mr.woo", "age": 28}
# print(person4)
# print("Value: %s" % person4.has_key('name'))
# items 所有项的列表形式
person5 = {"name": "mr.woo", "age": 28}
print(person5)
print(person5.items())
# iteritems 项可迭代
# iterkeys key 可迭代
# itervalues value 可迭代
# keys 所有的key列表
# pop 获取并在字典中移除
# update 更新
# values 所有的值
# for循环
li88 = [11,22,33,44,55]
for item in li88:
print(item)
# enumerate 为可迭代的对象添加序号
li89 = [33,22,55,989]
for k,v in enumerate(li89, 1):
print(k,v)