python变量的操作方法

python 变量
创建于:2019年07月06日

字符串方法

注:字符串可以切片,但是字符串是不可变的,因此不可以分片赋值

1、find(str,start)

find方法可以在一个字符串中查找子串。它返回子串所在位置的最左端索引。如果没有找到则返回-1。区分大小写

>>> title = 'Python is the best language in the world'
>>> title.find('python')
-1
>>> title.find('the',10)
10
>>> title.find('the',11)
31

2、join(iterable)

join用特定符号连接序列中的元素。需要被连接的序列元素都必须是字符串

>>> '-'.join({'name' : 'chenyy', 'age' : 18})
'name-age'

3、split(str,num)

split通过指定分隔符对字符串切片成列表,num指定分割次数

注:如果不提供任何分隔符,程序会把所有空格作为分隔符

>>> str = 'to be or not to be'
>>> str.split(' ')#引号中间有空格,没有会报错。可以不加引号,不填写内容
['to', 'be', 'or', 'not', 'to', 'be']

4、lower()

lower方法把字符串转换为小写

>>> 'Hello World'.lower()
'hello world'

5、title()

title方法将单词首字母转换为大写

>>> 'hello world'.title()
'Hello World'

6、replace()

replace方法返回某字符串的所有匹配项被替换之后的得到的字符串,没有匹配项则返回原字符串

>>> 'this is test'.replace('test', 'demo')
'this is demo'

7、strip()

strip方法去除字符串两侧指定字符,返回处理后的字符串

>>> '-*- coding:utf-8 -*-'.strip('-*-')
' coding:utf-8 '
>>>

8、swapcase()

字符串大小写转换

>>> "I love Python".swapcase()
'i LOVE pYTHON'

9、isalnum()

检查字符串是否为字母或数字,返回布尔值

>>> 'python 666'.isalnum()
False
>>> 'python'.isalnum()
True
>>> '666'.isalnum()
True

10、isalpha()

检查字符串是否全为字母,返回布尔值

>>> 'python123'.isalpha()
False
>>> 'python'.isalpha()
True

11、isdigit()

检查字符串是否全部为数字,返回布尔值

>>> '123'.isdigit()
True
>>> 'python123'.isdigit()
False

12、startswith(str,start,end)

检查是否已指定字符串开头,返回布尔值

>>> 'to be or not to be'.startswith('to')
True

13、endswith(str,start,end)

检查是否已指定字符串结尾,返回布尔值

>>> 'to be or not to be'.endswith('be')
True

列表方法

1、append(value)

append方法用于在列表末尾追加新的对象,它并不是返回一个修改过的新列表,而是直接修改原来的列表

>>>lst = [1,2,3]
>>>lst.append(4)
>>>lst
[1,2,3,4]

2、count(value)

count方法统计某个元素在列表中出现的次数,区分大小写。(count方法还适用于元组和字符串)

>>>x = [[1, 2], 1, 1, [1, [1, 2]]]
>>>x.count(1)
2
>>>x.count([1, 2])
1

3、extend(iterable)

extend方法可以在列表的末尾一次性追加另一个序列中的所有值。这个操作看起来很像连接操作(只有两种类型相同的序列才能进行连接操作),两者最主要的区别在于:extend方法修改了被扩展的序列,而原始的连接操作则会返回一个全新的列表

>>>a = [1, 2, 3]
>>>b = [4, 5, 6]
>>>a.extend(b)
>>>a
[1, 2, 3, 4, 5, 6]

可以使用分片赋值来实现同样的效果:

>>>a = [1, 2, 3]
>>>b = [4, 5, 6]
>>>a[len(a): ] = b
>>>a
[1, 2, 3, 4, 5, 6]

4、index(value)

index方法用于从序列中找出某个元素第一个匹配项的索引位置。没有找到会引发异常(有序序列都可使用)

>>> lst = [1, 2, 3]
>>> lst.index(2)
1

5、insert(index,value)

insert方法用于将对象插入到列表中,如果索引不存在于列表中则在该列表末尾插入

>>> lst = [1, 3, 4]
>>> lst.insert(1, 'two')
>>> lst
[1, 'two', 3, 4]

6、pop(index)

pop方法会移除列表中的一个元素(默认为最后一个),并返回该元素的值

注:pop方法是唯一一个既能修改列表又返回元素值的列表方法

>>> lst = [1,2,3,4,5]
>>> lst.pop()
5
>>> lst.pop(1)
2

7、remove(value)

remove方法用于移除列表中某个元素的第一个匹配项。remove是一个没有返回值的原位置改变方法

>>> lst = ['to', 'be', 'or', 'not', 'to', 'be']
>>> lst.remove('to')
>>> lst
['be', 'or', 'not', 'to', 'be']

8、reverse()

reverse方法将列表中的元素反向存放。原位置改变,不会生成新的列表,没有返回值

>>> lst = [1, 2, 3, 4]
>>> lst.reverse()
>>> lst
[4, 3, 2, 1]

9、sort()

sort方法用于在原位置对列表排序。

注:排序的列表中只能有一种类型的变量,出现一种以上会报错

>>> lst = ['one', 'two', 'three', 'four']
>>> id(lst)
1652726159944
>>> lst.sort()
>>> lst
['four', 'one', 'three', 'two']
>>> id(lst)
1652726159944

字典方法

1、clear()

clear方法清除字典中所有的项。这个是原地操作,无返回值

>>> d = {'name': 'chenyy', 'age': 18}
>>> id(d)
1652725275168
>>> d.clear()
>>> d
{}
>>> id(d)
1652725275168

2、copy()

copy方法返回一个具有相同键-值对的新字典(这个方法实现的是浅复制)

>>> d = {'name': 'chenyy', 'age': 18}
>>> d1 = d.copy()
>>> id(d)
1652726134608
>>> id(d1)
1652725275168
>>> d1
{'name': 'chenyy', 'age': 18}

3、fromkeys(iterable[, default])

fromkeys方法使用给定的键建立新的字典,每个键都对应一个默认的值None

>>> dict().fromkeys(['name', 'age'])
{'name': None, 'age': None}
>>> dict.fromkeys(['name', 'age'])
{'name': None, 'age': None}
>>> {}.fromkeys(['name','age'], 'null')
{'name': 'null', 'age': 'null'}

4、get(key)

get方法获取键对应的值。当get访问一个不存在的键时,没有任何异常,而得到自定义的返回值,默认返回值为None

>>> d = {'name': 'chenyy', 'age': 18}
>>> d.get('sex')
>>> d.get('sex','boy')
'boy'

5、items()

items方法将字典所有的项以可迭代对象dict_items返回,列表中的每一项都表示为(键,值)对的形式

>>> d.items()
dict_items([('name', 'chenyy'), ('age', 18)])

6、keys()

keys方法将字典中所有的键以可迭代对象dict_keys返回

>>> d.keys()
dict_keys(['name', 'age'])

7、values()

values方法将字典中所有的值以可迭代对象dict_values返回

>>> d.values()
dict_values(['chenyy', 18])

8、pop(key)

pop方法返回对应键的值,然后将这个键值对从字典中移除

>>> d.pop('age')
18
>>> d
{'name': 'chenyy'}

9、popitem()

popitem方法随机从字典中弹出一个键值对,以元组形式返回,然后将这个键值对删除

>>> d
>>>d = {'name': 'chenyy', 'age': 18, 'sex': 'boy'}
>>> d.popitem()
('sex', 'boy')

10、setdefault(key[,default=None])

setdefault方法在某种程度上类似于get()方法,能够获取给定键对应的值,除此之外,setdefault还能在字典不含有给定键的情况下设定相应的键值(默认为None)

>>> d = {}
>>> d
{}
>>> d.setdefault('name','chenyy')
'chenyy'
>>> d
{'name': 'chenyy'}

11、update(iterable)

update方法可以把以键值对形式存在的可迭代对象和调用的字典对象进行合并,若有相同的键则会进行覆盖

>>> d = {'sex': 'boy'}
>>> id(d)
1782678051288
>>> d.update([('name', 'chenyy'), ('age', 18)])
>>> d
{'sex': 'boy', 'name': 'chenyy', 'age': 18}
>>> id(d)
1782678051288

集合方法

(frozenset(),不可变集合,内容不可更改,其它和集合一样)

集合里面不可存可变对象,如list,dict

请注意:union(), intersection(), difference() 和 symmetric_difference() 的非运算符(non-operator,就是形如 s.union()这样的)版本将会接受任何 iterable 作为参数。相反,它们的运算符版本(operator based counterparts)要求参数必须是 set。

1、defference

返回只在第一个集合中出现的元素(差集,用【-】表示)

>>> set1 = {1, 2, 3, 4, 5, 6}
>>> set2 = {4, 5, 6, 7, 8, 9}
>>> set1 - set2
{1, 2, 3}

2、intersection

返回两个集合中共有的元素(交集,用【&】表示)

>>> set1 = {1, 2, 3, 4, 5, 6}
>>> set2 = {4, 5, 6, 7, 8, 9}
>>> set1 & set2
{4, 5, 6}

3、union

返回两个集合中所有的元素(并集,用【|】表示)

>>> set1 = {1, 2, 3, 4, 5, 6}
>>> set2 = {4, 5, 6, 7, 8, 9}
>>> set1 | set2
{1, 2, 3, 4, 5, 6, 7, 8, 9}

4、symmetric_difference

返回不同时出现在两个集合里的所有元素

>>> s1 = {1,2,3}
>>> s2 = {2,3,4}
>>> s1 ^ s2
{1, 4}

5、pop()

弹出集合元素,集合为空则抛出异常

6、add()

在集合中添加一个元素

7、remove(value)

移除集合里的元素,不存在会报错

8、discard(value)

如果value存在于集合中则删除,不存在不会报错

9、issubset()(<=)

等同于 set1 <= set2

接收一个序列,检测集合中的所有值是否都存在于序列中,返回布尔值

>>> s1
{1, 2, 3, 4, 5, 7, 8}
>>> s2
{2, 3, 4}
>>> s2 <= s1
True

10、issuperset()(>=)

接收一个序列,检测序列中的所有值是否都存在于集合中,返回布尔值

等同于set1 >= set2

>>> s1
{1, 2, 3, 4, 5, 7, 8}
>>> s2
{2, 3, 4}
>>> s1.issuperset(s2)
True

11、update() (|=)

接收一个序列把序列中的所有值和集合进行合并,原地址操作,没有返回值

>>> set1 = {1,2,3}
>>> set2 = {4,5,6}
>>> set1 |= set2
>>> set1
{1, 2, 3, 4, 5, 6}

12、intersection_update()(&=)

保留集合中相同的元素,原地址操作,没有返回值,&是生成一个新的集合

>>> set1
{1, 2, 3, 4, 5, 6}
>>> set2
{4, 5, 6}
>>> set1 &= set2
>>> set1
{4, 5, 6}

13、difference_update()【-=】

和-功能相同,原地址操作,没有返回值

14、symmetric_difference_update【^=】

和^功能相同,原地址操作,没有返回值