Python学习笔记(字符串、列表、字典)

Python学习笔记(字符串、列表、字典),第1张

以下部分笔记来自路飞学城教育机构学习课件 1.0 数据类型-str 1.1 字符串定义

创建

s = "Hello, my name is Alex,golden king."

字符串特性

1.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序

2.

3.切片 *** 作 (顾头不顾尾)

>>> s
'Hello, my name is Alex,golden king.'
>>> s[3:6] # 顾头不顾尾
'lo,'
>>> s[1:5]
'ello'
>>> s[0:5]
'Hello'
>>>
>>> s[3:10]
'lo, my '

4.不可变,字符串是不可变的,不能像列表一样修改其中某个元素,所有对字符串的修改 *** 作其实都是相当于生成了了一份新数据。

1.2 字符串常用 *** 作
    a = "Alex li 金角大王" #字符串
    print(a.center(50, "-"))  # 居中并填充  ---------Alex li 金角大王--------
    print(a.count("l", 0, 4))  # 计数
    print(a.endswith("王"))  # 判断结尾
    print(a.startswith(("Al")))  # 判断开头
    print(a.find("单"))  # 字符查找 返回-1代表没找到
    print(a.find("角"))  # 字符查找 如果找到了就返回所查字符的索引
    print("22".isdigit())  # 判断是否是整数

     l = ["alex", "black girl", "pig"]#列表
    print("-".join(l)) #用于连接列表内的元素   
        # alex-black girl-pig
    print(a.replace("l","M",1)) #字符串不可变 只会赋予新值 最后数字指定替换个数 
        # AMex li 金角大王
    print(a.split("l",1))#按照指定字符(默认空格)把字符串拆成列表    
        # ['A', 'ex li 金角大王']
2.0 数据类型-list 2.1 定义
列表:[]内以逗号分隔,按照索引,存放各种数据类型,每一个位置代表一个元素

列表的特点:

1.可存放多个值

2.可存放多个值、按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序

 

3.可修改指定索引位置的值,可变

2.2 列表的增加 *** 作

追加,数据会追加到尾部

>>> names['alex', 'jack']
>>> names.append("rain")
>>> names.append("eva")
>>> names['alex', 'jack', 'rain', 'eva']

插入,可插入任何位置

>>> names.insert(2,"黑姑娘")
>>> names['alex', 'jack', '黑姑娘', 'rain', 'eva']

合并,可以把另一外列表的值合并进来

>>> n2 = ["狗蛋","绿毛","鸡头"]
>>> names=['alex', 'jack', '黑姑娘', 'rain', 'eva']
>>> names.extend(n2)
>>> names['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头']

列表嵌套

>>> names.insert(2,[1,2,3])
>>> names ['alex', 'jack', [1, 2, 3], '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛','鸡头']
>>> names[2][1] 2
2.3 删除 *** 作

del 直接删

>>> names
['alex', 'jack', [1, 2, 3], '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头']
>>> del names[2]
>>> names
['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头']

.pop 删除

>>> names
['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头']
>>> names.pop() #默认删除最后一个元素并返回被删除的值
'鸡头'
>>> names
['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛']
>>> help(names.pop)
>>> names.pop(1) #删除指定元素
'jack

.remove 删除

>>> names
['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛', '鸡头', 'eva']
>>> names.remove("eva") # 删除第⼀一个找到的eva值
>>> names
['alex', 'jack', '黑姑娘', 'rain', '狗蛋', '绿毛', '鸡头', 'eva']

.clear 清空

>>> n2
['狗蛋', '绿毛', '鸡头']
>>> n2.clear()
>>> n2
[]
2.4 修改 *** 作
>>> names
['alex', '黑姑娘', 'rain', 'eva', '狗蛋', '绿毛']
>>> names[0] = "金⻆大王"
>>> names[-1] = "银角⼤王"
>>> names
['⾦⻆大王', '黑姑娘', 'rain', 'eva', '狗蛋', '银⻆大王']
2.5 查 *** 作 .index() 返回索引
>>> names
['⾦角⼤王', '黑姑娘', 'rain', 'eva', '狗蛋', '银⻆大王', 'eva']
>>> names.index("eva") #返回从左开始匹配到的第一个eva的索引
3
>>> names.count("eva") #返回eva的个数
2

在不知道一个元素在列表的哪个位置的情况下,如何修改:

1.先判断在不在列表里 item in list

2.取索引, item_index = names.index("eva")

3.去修改,names[item_index] = "铁蛋"

2.6 切片
names[start : end]

>>> names
['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '银角大王', 'eva']
>>> names[1:4] #不包含下标4的元素
['黑姑娘', 'rain', 'eva']

注意:切片的特性是顾头不顾尾,即start的元素会被包含, end-1是实际取出来的值
简写

>>> n[0:4]
['alex', 'jack', ['makc', '陈xxx'], '黑姑娘']
>>> n[:4]
['alex', 'jack', ['makc', '陈xxx'], '黑姑娘']

取倒数后2个值

>>> n[0:4]
['alex', 'jack', ['makc', '陈xxx'], '黑姑娘']
>>> n[:4]
['alex', 'jack', ['makc', '陈xxx'], '黑姑娘']
>>> n[4:5]
['rain']
>>> n[4:6] # 超标写法
['rain', 'eva']
>>> n[4:] # 省略最后⼀一个索引
['rain', 'eva'] #

倒着切(索引正着写 顾头不顾尾 所以会少一个)

>>> names[-5:-1]
['rain', 'eva', '狗蛋', '银⻆大王']

>>> names[-5:]
['rain', 'eva', '狗蛋', '银⻆大王', 'eva']

如果取前几个值,一样可以把:号左边的省掉

>>> names['⾦角⼤王', '黑姑娘', 'rain', 'eva', '狗蛋', '银⻆大王', 'eva']
>>> names[0:3]
['⾦角大王', '黑姑娘', 'rain']
>>> names[:3] #跟上面⼀样的效果
['金⻆大王', '黑姑娘', 'rain']

步长(跳着切)

names[start:end:step] #step 默认是1
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[0:7:2] #设置步长为2
[0, 2, 4, 6]

简写

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[::3] #按步长3打印列表,第1个:是省略掉的start:end
[0, 3, 6, 9]
2.7 排序&反转

排序 .sort()

>>> a = [83,4,2,4,6,19,33,21]
>>> a.sort()
>>> a
[2, 4, 4, 6, 19, 21, 33, 83]

反转 .reverse()

>>> names
['#', '4', '@', 'eva', 'rain', '狗蛋', '⾦角⼤大王', '银⻆大王', '黑姑娘']
>>> names.reverse()
>>> names
['黑姑娘', '银⻆大王', '⾦角⼤王', '狗蛋', 'rain', 'eva', '@', '4', '#']

2.8 循环列表

>>> for i in names:
...     print(i)
...
黑姑娘
银⻆大王
金⻆大王
狗蛋
rain
eva
@
4
#

打印列表索引 enumerate()

>>> for i in enumerate(n):
...     print(i[0],i[1])
...
0 Alex
1 alex
2 eva
3 rain
4 shit
5 ⿊黑姑娘
3.0 数据类型-dict

{key1:value1, key2:value2}

info = {
    "name":"Alex Li",
    "age" : 26
}

key -> value

: 号左边是key,右边是value

特性:

1.key-value结构

2.key必须为不可变数据类型(字符串、数字)、必须唯一

3.可存放任意多个value(用list)、可修改、可以不唯一

4.无序、ordered_dict

5.查询速度快、且不受dict的大小影响

3.1 增加 *** 作
mes = {
    "alex": [23, "CEO", 66000],
    "黑姑娘": [24, "行政", 4000],
}
# 新增k
names["佩奇"] = [26, "讲师", 40000]
3.2 删除 *** 作 .pop() / del / .clear()
names.pop("alex") # 删除指定key
del names["oldboy"] # 删除指定key,同pop方法
names.clear() # 清空dict
3.3 修改 *** 作
dic['key'] = 'new_value' # 如果key在字典中存在, 'new_value'将会替代原来的value值;
3.4 查 *** 作
dic['key'] #返回字典中key对应的值,若key不存在字典中,则报错;

dic.get(key, default = None) 
#返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)

'key' in dic #若存在则返回True,没有则返回False

dic.keys() #返回一个包含字典所有KEY的列表;
dic.values() #返回⼀个包含字典所有value的列表;
dic.items() #返回⼀个包含所有(键,值)元组的列表;

# k,v 2个变量
>>> for k,v in dic.items():
... print(k,v)
...
Alex [23, 'CEO', 66000]
黑姑娘 [24, '行政', 4000]
佩奇 [26, '讲师', 40000]
3.5 循环
1、 for k in dic.keys()
2、 for k,v in dic.items()
3、 for k in dic # 推荐⽤这种,效率速度最快 (k表示key,dic[k]表示value)

info = {
    "name":"路飞学城",
    "mission": "帮⼀千万极客⾼效学编程",
    "website": "https://luffycity.com"
}

for k in info:
    print(k,info[k])

输出>>>
name 路飞学城
mission 帮一千万极客高效学编程
website https://luffycity.com
3.6 求长度
len(info) # len()方法可同时用于列表、字符串

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/725741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存