# 1:字符串方法:join
my_str = "ren"
print("_".join(my_str))
#输出结果:r_e_n

my_list = ["1", "2"]
print("!".join(my_list))
# 输出结果为:1!2

# 2:列表添加数据
my_list2 = [1, 2, 3, 4, 5]
#append 尾追加
my_list2.append(6)
print(my_list2)
# 输出结果为:[1, 2, 3, 4, 5, 6]

# 追加一组数据
my_list2.extend([7, 8, 9])
print(my_list2)
# 输出结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9]

# insert插入到指定位置数据(一个或者一组)
my_list2.insert(9, 1)
print(my_list2)
#下标为9的地方插入一个1
# 输出结果为:[1, 2, 3, 4, 5, 6, 7, 8, 9, 1]
my_list2.insert(8, [2, 3])
print(my_list2)
# 输出结果为:[1, 2, 3, 4, 5, 6, 7, 8, [2, 3], 9, 1]
my_list2.insert(2, (3, 4))
print(my_list2)
# 输出结果为:[1, 2, (3, 4), 3, 4, 5, 6, 7, 8, [2, 3], 9, 1]


# 3:列表排序
my_list3 = [1, 2, 4, 5, 6, 8]
my_list3.sort()
print(my_list3)
# 输出结果为:[1, 2, 4, 5, 6, 8]

# 逆序排序
my_list3.sort(reverse=True)
print(my_list3)
# 输出结果为:[8, 6, 5, 4, 2, 1]

# 4:元组:不可变类型,即增删改都不行,只能进行查找

# 特殊:单个数据必须在后面加逗号
my_tuple = ("a", )
print(my_tuple)
# 输出结果为:('a',)
my_str = ("a")
print(my_str)
# 输出结果为:a

# my_tuple可以使用index索引  和count属性
my_tuple2 = ('1', '2', '3', 'a', '1')
print(my_tuple2.count('1'))
print(my_tuple2.index('a'))
# 输出结果为: 2 3

# 5:字典dict python3.6字典变成有序的了
person_dict = {"name": "任善文", "age": 23, "address": "山东省德州市"}
person_name = person_dict["name"]
print(person_name)
# 输出结果:任善文
person_name2 = person_dict.get("name")
print(person_name2)
# 输出结果:任善文

#区别:get方法当键不存在的时候不会报错,而是返回None,并且get方法还提供默认值。
person_name3 = person_dict.get("job", "程序员")
print(person_name3)
# 输出结果为:程序员

# 6: 字典的增删改查

# 创建空字典
my_dict = dict()

#增加或者修改
my_dict["name"] = "任善文"
print(my_dict)
my_dict["name"] = "小贱贱"
print(my_dict)
# 输出结果:
# {'name': '任善文'}
# {'name': '小贱贱'}

#删除字典

#清空字典
my_dict.clear()
print(my_dict)

my_dict["name"] = "任善文"
my_dict["age"] = 23
my_dict["address"] = "山东省德州市"

#删除并且出站
my_name = my_dict.pop("name")
print(my_name)
print(my_dict)

# 输出结果为:
# 任善文
# {'age': 23, 'address': '山东省德州市'}


# 删除
del my_dict["age"]
print(my_dict)

#输出结果为:{'address': '山东省德州市'}

#字典的查找

#根据键查找值
my_dict = {"name": "任善文", "age": 23, "sex": "男"}
my_name = my_dict['name']
print(my_name)

# 查看所有的键
my_key = my_dict.keys()
print(my_key)
# 输出结果为:dict_keys(['name', 'age', 'sex'])

#查看所有的值
my_values = my_dict.values()
print(my_values)
#输出结果为:dict_values(['任善文', 23, '男'])

#查看所有的键值对
my_keys_values = my_dict.items()
print(my_keys_values)
#输出结果为:dict_items([('name', '任善文'), ('age', 23), ('sex', '男')])


# 7:字典的遍历
for key, value in my_dict.items():
    print(key, value)

#输出结果为
# name 任善文
# age 23
# sex 男

#遍历值
for value in my_dict.values():
    print(value)

# 任善文
# 23
# 男

# 遍历键
for key in my_dict.keys():
    print(key)

# name
# age
# sex

# 8 :公共运算符:+  适用于字符串,列表,元组
mystr1 = "任善文"
mystr2 = "帅哥"
mystr3 = mystr1 + mystr2
print(mystr3)

mylist1 = [1, 2, 3]
mylist2 = [4, 5, 6]
mylist3 = mylist1 +mylist2
print(mylist3)

mytuple1 = (1, 2, 3)
mytuple2 = (4, 5, 6)
print(mytuple1 + mytuple2)

# 任善文帅哥
# [1, 2, 3, 4, 5, 6]
# (1, 2, 3, 4, 5, 6)

# * :用于复制  适用于:字符串,列表,元组
my_str = "任善文"
my_str = my_str * 3
print(my_str)

my_list = [1, 2, 3]
my_list = [1, 2, 3] * 3
print(my_list)

my_tuple = (1, 2, 3)
my_tuple = my_tuple * 3
print(my_tuple)


# 输出结果为:
# 任善文任善文任善文
# [1, 2, 3, 1, 2, 3, 1, 2, 3]
# (1, 2, 3, 1, 2, 3, 1, 2, 3)

# 9:in   not in  :适用于字符串,列表,元组,字典

print("a" in "abc")
print("a" not in "abc")

print(1 in [1, 2, 3])

print(1 in (1, 2, 3))

print("李四" in {"姓名": "李四"}.values())
print("姓名" in {"姓名": "李四"}.keys())

# 10:内置函数
my_list = [1, 2, 3, 4]
print(len(my_list))

print(max(my_list))

print(min(my_list))