#序列 0~-1
#切片
str="C语言中文网"
print(str[:2]) #取索引区间为[0,2]之间(不包括索引2处的字符)的字符串
print(str[::2]) #隔 1 个字符取一个字符,区间是整个字符串
print(str[:])#取整个字符串,此时 [] 中只需一个冒号即可
print('C' in str) #in

#列表
list1 = []
a_list = ['crazyit', 20, -2]
#追加,插入
a_list.append('fkit')   # 追加元素
print(a_list)
a_tuple = (3.4, 5.6)
a_list.append(a_tuple)  # 追加元组,元组被当成一个元素
print(a_list)
a_list.append(['a', 'b']) # 追加列表,列表被当成一个元素
print(a_list)
a_list.extend((-2, 3.1)) # 追加元组中的所有元素
print(a_list)
a_list.extend(['C', 'R', 'A']) # 追加列表中的所有元素
print(a_list)
a_list.extend(range(97, 100))# 追加区间中的所有元素
print(a_list)
a_list.insert(0,"insert1")# 追加区间中的所有元素
print(a_list)
a_list.insert(2,"insert2")# 追加区间中的所有元素
print(a_list)
#删除
del a_list[-1]  #删除最后一个元素
print(a_list)
a_list.remove(-2)  #删除值为-2这个元素
print(a_list)
a_list.clear()   #删除所有
print(a_list)
#修改
b_list = list(range(1, 5))
b_list[2: 2] = ['x', 'y']  # 将第3个到第3个(不包含)元素赋值为新列表的元素,就是插入
print(b_list)
b_list = list(range(1, 5))
b_list[1: 3] = 'Charlie'
print(b_list)
#其他函数
dir(list)

#元组
a_tuple = ()
a_tuple = "hello"," my presourse"
b_tuple = "hello",
print(a_tuple,b_tuple)
a = range(4,20,3)
b = tuple(a)
c = list(a)
print(type(a),a,type(b),b,type(c),c)
#修改(连接)
print(a_tuple + b)
dir(tuple)

# 字典
a = {'id':1,'name':"Alice",'info':True}
print(type(a))
a = dict(one=1,two=2,three=3)
b = dict([('two',2),('one',1),('three',3)])
c = dict([['two',2],['one',1],['three',3]])
d = dict((('two',2),('one',1),('three',3)))
e = dict((['two',2],['one',1],['three',3]))
demokeys =  ['one','two','three']
demovalues = [1,2,3]
f = dict(zip(demokeys,demovalues))
print(a,b,c,d,e,f)
#通过键来访问
a = {'id':1,'name':"Alice",'info':True}
print(a['id'])
print(a.get('ii'))
print(a.get('ii','没找到'))
#添加,修改
a['id'] = 2
a['addr'] = "Lin street"
print(a)
del a['addr']
print(a)
#一键对应多值
'方案一 list作为dict的值 值允许重复'
d1 = {}
key = 1
value = 2
d1.setdefault(key, []).append(value)
value = 2
d1.setdefault(key, []).append(value)
# 获取值
'方案一 获取值'
list(d1[key])
'方案一 删除值,会留下一个空列表'
d1[key].remove(value)
d1[key].remove(value)
'方案一 检查是否还有一个值'
d1.get(key, [])

#函数
dir(dict)
a = {'id':1,'name':"Alice",'info':True}
print(list(a.keys()),list(a.values()),list(a.items()))
# print(a.popitem())
k,v = a.popitem()   #弹出一个键值对,原本的字典中该键值对被删除
print(a,k,v)
a = {'one': 1, 'two': 2, 'three': 3}
print(a.setdefault('four', 9.2))# 设置默认值,该key在dict中不存在,新增键值对,返回该value
print(a)
print(a.setdefault('one', 3.4))# 设置默认值,该key在dict中存在,不会修改dict内容,返回1
print(a)

#集合
a = {'a','c',(1,2,3),'a',1}
#访问
for ele in a:
    print(ele,end=" ")

#将列表中的元素从小到大排序
def mySort(list):
    newList = []
    for i in range(len(list)):
        number = min(list)
        newList.append(number)
        list.remove(number)
    return newList
result = mySort(list)
print(result)