python基础总结2——切片的概念及列表、元祖、字典的操作及公共方法

谁践踏了优雅 2022-04-14 05:14 395阅读 0赞

目录

一、python的数据结构

1,下标和切片

2,列表

(1)列表的遍历

(2)列表的相关操作

添加元素(“增”append, extend, insert)

修改元素

查找元素(“查”in, not in, index, count)

删除元素(“删”del, pop, remove)

排序(sort, reverse)

(3)列表的嵌套

3,元组

4,字典

(1)字典的常用操作

len()获取字典键值对个数

keys:返回一个包含字典所有KEY的列表

values:返回一个包含字典所有value的列表

items:获取键值对

has_key:判断是否存在某个key

(3)字典的遍历

(4)遍历中实现下标索引

5,公共的方法

运算符

python内置函数

多维列表/元祖访问的示例


一、python的数据结构

1,下标和切片

所谓“下标”,就是编号;

切片就在于取列表中的一部分数,比如这种格式:

name=’1234567’

name[1:4]

name[1:-1] #这个不会取到7 而name[-1]是7,这是因为切片不会取到

name[1:]

有一种比较特殊的写法:

name[::]

参数格式:name[起始位置:结束位置:步长],这个步长可以理解为起始位置+几,然后取第二个值

如果步长取-1,很有意思,它会直接倒排(逆序):

name[::-1]

输出:’7654321’

2,列表

在python中的列表,很想c语言和java中的数组,操作方式类似,存数据的时候很想List,总之用数组的方式操作List就是了。

(1)列表的遍历

i=0

while i < len(a):

print(a[i])

i+=1;

当然可以用for: for str in a :

(2)列表的相关操作

添加元素(“增”append, extend, insert)

append

通过append可以向列表添加元素

a=[1,2,3,4,5,6]

a.append(7)

a

[1, 2, 3, 4, 5, 6, 7]

insert 则是可以添加到下标所指位置

a.insert(1,’aa’)

a

[1, ‘aa’, 2, 3, 4, 5, 6, 7]

extend 很类似于java中集合元素的addAll方法:

b=[‘bb1’,’bb2’]

b

[‘bb1’, ‘bb2’]

a.extend(b)

a

[1, ‘aa’, 2, 3, 4, 5, 6, 7, ‘bb1’, ‘bb2’]

修改元素

a[1]=’bb’

a

[1, ‘bb’, 2, 3, 4, 5, 6, 7, ‘bb1’, ‘bb2’]

查找元素(“查”in, not in, index, count)

python中查找的常用方法为:

  • in(存在),如果存在那么结果为true,否则为false
  • not in(不存在),如果不存在那么结果为true,否则false

print(1 in a)

print(1 not in a)

index和count与字符串中的用法相同“

a

[1, ‘bb’, 2, 3, 4, 5, 6, 7, ‘bb1’, ‘bb2’]

a.index(1)

0

# 也可以这样写:

a.index(1,0,5)

0

count用于计数

a.count(1)

1

删除元素(“删”del, pop, remove)

  • del:根据下标进行删除
  • pop:删除最后一个元素
  • remove:根据元素的值进行删除

del a[0]

a

[‘bb’, 2, 3, 4, 5, 6, 7, ‘bb1’, ‘bb2’]

a.pop()

a.remove(2)

a

[‘bb’, 3, 4, 5, 6, 7, ‘bb1’]

排序(sort, reverse)

reverse能够反转列表

a = [1, 4, 2, 3]

a

[1, 4, 2, 3]

a.reverse()

a

[3, 2, 4, 1]

sort能够对列表进行排序

a.sort()

a

[1, 2, 3, 4]

(3)列表的嵌套

列表是可以嵌套的,和List很类似

[[1,1,1],[2,2,2]]

3,元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

这个元组和c语言中的const很类似,或者说java中的final变量有些类似。这个元组是可以重新当做变量使用,但是元组里的单个值时不能修改的。

name=(1,2,3,4)

name

(1, 2, 3, 4)

name[1] =3

Traceback (most recent call last):

File ““, line 1, in

name[1] =3

TypeError: ‘tuple’ object does not support item assignment

一旦修改元组的值时,就会报错。

元组的操作和列表基本一致,除了不能修改。

4,字典

字典很类似与map

这样的东西就是字典:{‘zhangfei’:’changmao’}

dic = {‘zhangfei’:’changmao’}

type(dic)

(1)字典的常用操作

字典就是一系列的键值对。

取dic值:dic[‘zhangfei’]

更加友好的方式是通过get来取值:

dic.get(‘zhangfei’)

‘changmao’

要添加不存在元素,直接用

dic[‘next’] = ‘next’

dic

{‘zhangfei’: ‘changmao’, ‘next’: ‘next’}

删除元素:

  • del
  • clear()

del dic[‘next’]

dic

{‘zhangfei’: ‘changmao’}

del dic 则是删除整个字典了,删除后就不能访问了

clear就是清空的意思

dic.clear()

dic

{}

len()获取字典键值对个数

dic = {‘a’:’aa’,’b’:’bb’}

len(dic)

2

注意一下,获取长度的写法都是len(),和java中的length不太一样

keys:返回一个包含字典所有KEY的列表

dic.keys()

dict_keys([‘a’, ‘b’])

values:返回一个包含字典所有value的列表

dic.values()

dict_values([‘aa’, ‘bb’])

items:获取键值对

dic.items()

dict_items([(‘a’, ‘aa’), (‘b’, ‘bb’)])

has_key:判断是否存在某个key

这个方法注意哦,在python2中是存在的,在python3中用 key in dict来判断

‘a’ in dic

True

(3)字典的遍历

字典keys遍历:

for k in dic.keys():

print(k)

value遍历:

for v in dic.values():

print(v)

项遍历:

for item in dic.items():

print(item)

键值对遍历:

for k,v in dic.items():

print(k + “:” + v)

(4)遍历中实现下标索引

a、定义一个变量i,从0开始计数

b、enumerate()

for i, chr in enumerate(chars): … print i, chr

5,公共的方法

运算符









































运算符 Python 表达式 结果 描述 支持的数据类型
+ [1, 2] + [3, 4] [1, 2, 3, 4] 合并 字符串、列表、元组
‘Hi!’ 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 复制 字符串、列表、元组
in 3 in (1, 2, 3) True 元素是否存在 字符串、列表、元组、字典
not in 4 not in (1, 2, 3) True 元素是否不存在 字符串、列表、元组、字典

+

  1. >>> "hello " + "itcast"
  2. 'hello itcast'
  3. >>> [1, 2] + [3, 4]
  4. [1, 2, 3, 4]
  5. >>> ('a', 'b') + ('c', 'd')
  6. ('a', 'b', 'c', 'd')

*

  1. >>> 'ab'*4
  2. 'ababab'
  3. >>> [1, 2]*4
  4. [1, 2, 1, 2, 1, 2, 1, 2]
  5. >>> ('a', 'b')*4
  6. ('a', 'b', 'a', 'b', 'a', 'b', 'a', 'b')

in

  1. >>> 'itc' in 'hello itcast'
  2. True
  3. >>> 3 in [1, 2]
  4. False
  5. >>> 4 in (1, 2, 3, 4)
  6. True
  7. >>> "name" in {"name":"Delron", "age":24}
  8. True

注意,in在对字典操作时,判断的是字典的键

python内置函数

Python包含了以下内置函数




































序号 方法 描述
1 cmp(item1, item2) 比较两个值
2 len(item) 计算容器中元素个数
3 max(item) 返回容器中元素最大值
4 min(item) 返回容器中元素最小值
5 del(item) 删除变量

cmp

  1. >>> cmp("hello", "itcast")
  2. -1
  3. >>> cmp("itcast", "hello")
  4. 1
  5. >>> cmp("itcast", "itcast")
  6. 0
  7. >>> cmp([1, 2], [3, 4])
  8. -1
  9. >>> cmp([1, 2], [1, 1])
  10. 1
  11. >>> cmp([1, 2], [1, 2, 3])
  12. -1
  13. >>> cmp({"a":1}, {"b":1})
  14. -1
  15. >>> cmp({"a":2}, {"a":1})
  16. 1
  17. >>> cmp({"a":2}, {"a":2, "b":1})
  18. -1

注意:cmp在比较字典数据时,先比较键,再比较值。

len

  1. >>> len("hello itcast")
  2. 12
  3. >>> len([1, 2, 3, 4])
  4. 4
  5. >>> len((3,4))
  6. 2
  7. >>> len({"a":1, "b":2})
  8. 2

注意:len在操作字典数据时,返回的是键值对个数。

max

  1. >>> max("hello itcast")
  2. 't'
  3. >>> max([1,4,522,3,4])
  4. 522
  5. >>> max({"a":1, "b":2})
  6. 'b'
  7. >>> max({"a":10, "b":2})
  8. 'b'
  9. >>> max({"c":10, "b":2})
  10. 'c'

del

del有两种用法,一种是del加空格,另一种是del()

  1. >>> a = 1
  2. >>> a
  3. 1
  4. >>> del a
  5. >>> a
  6. Traceback (most recent call last):
  7. File "<stdin>", line 1, in <module>
  8. NameError: name 'a' is not defined
  9. >>> a = ['a', 'b']
  10. >>> del a[0]
  11. >>> a
  12. ['b']
  13. >>> del(a)
  14. >>> a
  15. Traceback (most recent call last):
  16. File "<stdin>", line 1, in <module>
  17. NameError: name 'a' is not defined

多维列表/元祖访问的示例

  1. >>> tuple1 = [(2,3),(4,5)]
  2. >>> tuple1[0]
  3. (2, 3)
  4. >>> tuple1[0][0]
  5. 2
  6. >>> tuple1[0][2]
  7. Traceback (most recent call last):
  8. File "<stdin>", line 1, in <module>
  9. IndexError: tuple index out of range
  10. >>> tuple1[0][1]
  11. 3
  12. >>> tuple1[2][2]
  13. Traceback (most recent call last):
  14. File "<stdin>", line 1, in <module>
  15. IndexError: list index out of range
  16. >>> tuple2 = tuple1+[(3)]
  17. >>> tuple2
  18. [(2, 3), (4, 5), 3]
  19. >>> tuple2[2]
  20. 3
  21. >>> tuple2[2][0]
  22. Traceback (most recent call last):
  23. File "<stdin>", line 1, in <module>
  24. TypeError: 'int' object is not subscriptable

发表评论

表情:
评论列表 (有 0 条评论,395人围观)

还没有评论,来说两句吧...

相关阅读