列表、字典(操作)

列表:增删改查

L.append(object):在列表最后增加
_list = [5, 2, 6, 1, 3, 7, 4]
_list.append("pd")
print(_list)    #[5, 2, 6, 1, 3, 7, 4, 'pd']


_list = ["小东", "小西", "小南", "小北"] while 1: username = input("输入Q/q退出添加") if username.strip().lower() == "q": #迭代添加姓名到列表最后,直到输入q退出 break else: _list.append(username) print(_list) #['小东', '小西', '小南', '小北', 'ppd']

L.insert(index, object):插入 _list = [5, 2, 6, 1, 3, 7, 4] _list.insert(3, "pd") print(_list) #[5, 2, 6, 'pd', 1, 3, 7, 4]

L.extend(iterable):迭代增加 _list = [5, 2, 6, 1, 3, 7, 4] _list.extend(["p", "p", 8]) print(_list) #[5, 2, 6, 1, 3, 7, 4, 'p', 'p', 8]

L.pop(index):按索引删除
_list = [5, 2, 6, 1, 3, 7, 4]
name = _list.pop(3)    #按索引删除,默认删除最后一个
print(name, _list)        #1 [5, 2, 6, 3, 7, 4];1为返回值

L.remove(value):按元素删除
_list = [5, 2, 6, 1, 3, 7, 4]
_list.remove(5)
print(_list)    #[2, 6, 1, 3, 7, 4]

L.clear():清空列表
_list = [5, 2, 6, 1, 3, 7, 4]
_list.clear()
print(_list)    #[]

del:从内存中删除列表
_list = [5, 2, 6, 1, 3, 7, 4]
del _list

del list[]:切片删除列表内容
_list = [5, 2, 6, 1, 3, 7, 4]
del _list[0:2]
print(_list)    #[6, 1, 3, 7, 4]

赋值地改:_list[i] = "n"    #将"e_list"的[i]位删除,然后"n"赋值给这个位
_list = [5, 2, 6, 1, 3, 7, 4]
_list[0] = "pd"    
print(_list)    #['pd', 2, 6, 1, 3, 7, 4]

切片地改:在区间加入任意数量新元素
_list = [5, 2, 6, 1, 3, 7, 4]
_list[0:1] = "小明"             #['小', '明', 2, 6, 1, 3, 7, 4]
_list[0:3] = [1,"a", "小明"]    #[1, 'a', '小明', 1, 3, 7, 4]
print(_list)

_list = [5, 2, 6, 1, 3, 7, 4]
for i in _list:    #for循环一一查看列表里的内容
    print(i)

_list = [5, 2, 6, 1, 3, 7, 4]    
print(_list[0:2])    #[5, 2];切片查看

公共方法

L.index(value, [start], [stop]):列表只能用index索引,不能用find
_list = [5, 2, 6, 1, 3, 7, 4]
i = _list.index(1)        #3     找到元素1的索引号为3
i = _list.index(3, 2, 5)  #4     找到元素3的索引号为4

L.sort(reverse=False):列表排序
_list = [5, 2, 6, 1, 3, 7, 4]
_list.sort()    #默认正序排序参数可以不用填(reverse=False),倒序排序添加"reverse=True"
print(_list)    #[1, 2, 3, 4, 5, 6, 7]

L.reverse():列表反向排序
_list = [5, 2, 6, 1, 3, 7, 4]
_list.reverse()
print(_list)    #[4, 7, 3, 1, 6, 2, 5]

列表的嵌套

_list = ["小白", "老虎", "ppd", ["东南", "西北"], 18]
print(_list[1][1])        #

name = _list[2].capitalize()    #Ppd

_list[3][1] = "ppd"    #['小白', '老虎', 'ppd', ['东南', 'ppd'], 18]

_list = ['小白', '老虎', 'ppd', ['东南', 'ppd'], 18]
_list[3][1] = _list[3][1].upper()        #['小白', '老虎', 'ppd', ['东南', 'PPD'], 18]

_list[1] = _list[1].replace("", "")    #['小白', '老板', 'ppd', ['东南', '西北'], 18]

_list[3][0] = _list[3][0].replace("", "西")        #['小白', '老虎', 'ppd', ['西南', '西北'], 18]

_list[3].append("东南西北")    #['小白', '老虎', 'ppd', ['东南', '西北', '东南西北'], 18]

元组:只读列表,可循环查询,可切片;儿子不能改,孙子可能可以改

_tuple = (1, 2, 3, "ppd", ["小明", 4, 5, "qwer"], "哈哈")
_tuple[4][3] = _tuple[4][3].upper()    #(1, 2, 3, 'ppd', ['小明', 4, 5, 'QWER'], '哈哈')
_tuple[4].append("asdf")        #(1, 2, 3, 'ppd', ['小明', 4, 5, 'QWER', 'asdf'], '哈哈')

列表与字符串之间的转换(重要)

s = ["小白", "ppd", "18"]
x = ",".join(s)
print(x)    #小白,ppd,18

s = "小白:ppd:18"  #这是一个字符串
x = s.split(":")  #用 : 区别分开字符串
print(x)    #['小白', 'ppd', '18']

range:顾头不顾尾

for i in range(1, 10):
    print(i)    #123456789
for i in range(1, 10, 2):
    print(i)    #13579
for i in range(10, 1, -2):
    print(i)    #10 8 6 4 2
for i in range(1, 10, -1):
    print(i)    #什么也不显示

字典

数据类型划分:可变数据类型、不可变数据类型
    不可变数据类型:元组、bool、int、str 可哈希
    可变数据类型:list、dict、set 不可哈希
key:必须是不可变数据类型 可哈希
value:任意数据类型
优点:二分查找去查询
特点:无序、存储大量的关系型数据

访问字典中的值:字典名["键"]

增改删查

dic = {"age": 18, "name": "pd", "sex": "male"}

增或改:字典名[""]、字典名.update(字典名1)
dic["age"] = "20"   #有键,值被覆盖
dic["hobby"] = "swimming"   #没有找到对应的键,则作为新的键值对添加进字典中
dic1 = {"weight": "55kg", "height": 173}
dic.update(dic1)      #将字典dic1的键值对全部添加到字典dic中
删:
del 字典名[""]、字典名.pop("")、字典名.popitem()、字典名.clear()
del dic["age"]        #删除键"age",无返回值
del dic[]     #删除字典,什么都没了
dic.pop("age")      #删除键"age",有返回值,设置一个被赋予的变量,print这个变量即可看到返回值
dic.popitem()     #随机删除,有返回值
dic.clear()   #清空字典中的键值对
查:
x = dic.keys()
y = dic.values()
z = dic.items()
print(x)    #dict_keys(['age', 'name', 'sex'])
print(y)    #dict_values([18, 'pd', 'male'])
print(z)    #dict_items([('age', 18), ('name', 'pd'), ('sex', 'male')])

遍历

dic = {"age": 18, "name": "pd", "sex": "male"}
for k in dic.keys():
    print(k.title())
for v in dic.values():
    print(v)
for k, v in dic.items():        #k、v是变量,可使用任何名称
    print("key:"+k, "\nvalues:"+str(v))     #\n为换行符


if "height" not in dic.keys():      #使用keys()检测一个键是否在字典中
    print("tell me your height")

嵌套

dic = {"name": ["大头", "小头"],
      "name8": ["ppd", "peter", "john"],
       "dic1": {"color": "red", "points": "5", "position": "gd"},
    (1, 2, 3): "123",
         True: 1,
           18: "age",
       }
dic["name"].append("大小头")      #修改键name的值,name的值为列表,即在列表中加入新的元素
dic["dic1"]["color"] = dic["dic1"]["color"].upper()     #将键color的值全改为大写
dic["name8"][1] = dic["name8"][1].capitalize()      #修改键name8的值,值为列表,将peter首字母改为大写
dic["dic1"]["abc"] = "123"    #修改键dic1对应的值,值为字典,在字典中添加键值对 "abc": "123"

 

posted @ 2018-08-26 22:00  就俗人一个  阅读(683)  评论(0编辑  收藏  举报