本文主要是整理python的基本类型,包括列表、元组、字典、字符串、bytes和集合(set)的基本操作和应用。
1. list
1 | ### list:可变,可索引,有序(可索引),元素可重复,使用[]表示 |
求100以内的素数
1 | # The first solution |
打印杨辉三角( Pascal’s triangle)
1 | # The first solution |
2. 元组
1 | # 元组有序(可索引),不可变,小括号()表示,可以重复,只读(不能增删改) |
1 | t = (1,(2,),'a',[1,2],1,2,2,2,1,1,1) |
冒泡法排序
1 | # 对列表[1,9,8,5,6,7,4,3,2]使用冒泡法进行排序,要求使用封装和解构来交换数据 |
3. 字符串
1 | # 元组有序(可索引),不可变,小括号()表示,可以重复,只读(不能增删改) |
1 | str = "my name is mykernel" |
1 | #其他相关操作 |
1 | print('#'*20,'去除','#'*20) |
1 | #判断 |
1 | print('#'*20,'拼接','#'*20) |
说明1:
占位符的个数大于参数个数的时候,会抛出异常IndexError。
占位符的个数小于参数个数的时候,若对应的占位符能匹配到值则不报错,匹配不到值会返回异常。
当占位符出现混用的情况时,位置参数不在最前会返回异常。
说明2:
通常使用2.6或之后的版本使用format方法,2.6之前使用printf style。
在format中,需要注意的是,在2.6版本中是不能省略大括号里面的数字或者关键字。
字符串对齐
1 | print('{0}*{1}={2:<4}'.format(3,2,2*3)) #右边4个空格 |
1 | ## 演变过程 |
4. bytes和bytearray
1 | # 元组有序(可索引),不可变,小括号()表示,可以重复,只读(不能增删改) |
1 | # str -> bytes |
字符串转16进制
1 | bytearray('abc'.encode()).hex() |
'616263'
5. set
1 | # 元组有序(可索引),不可变,小括号()表示,可以重复,只读(不能增删改) |
1 | #定义 |
1, {1, b'1', '1', (1,)}
2, {1, (1,), 'a', b'1', '1'}
3, {1, 2, 3, 4, (1,), 'a', b'1', '1'}
4, {1, 2, 3, 4, (1,), 'a', 'r', 's', ' ', b'1', '1', 't'}
5, {2, 3, 4, (1,), 'a', 'r', 's', ' ', b'1', '1', 't'}
6, {2, 3, 4, (1,), 'a', 'r', 's', ' ', b'1', 't'}
2
7, {3, 4, (1,), 'a', 'r', 's', ' ', b'1', 't'}
8, set()
集合的运算
交差并补
6. dict
1 | # 元组有序(可索引),不可变,小括号()表示,可以重复,只读(不能增删改) |
1 | d = {'k':'v','1':2,'aa':[1,2,3],'bb':(32,2)} |
{'k': 'v', '1': 2, 'aa': [1, 2, 3], 'bb': (32, 2)}
1, v
2, 6
3, v
1, {'k': 'v', '1': 2, 'aa': [1, 2, 3], 'bb': (32, 2)}
2, {'k': 'v', '1': 2, 'aa': [1, 2, 3], 'bb': (32, 2), 'new': 44}
3, {'k': 'v', '1': 2, 'aa': [1, 2, 3], 'bb': (32, 2), 'new': 44, 'new1': 1, 'new2': 2, 'red': 1, 'red1': 1}
4, {'1': 2, 'aa': [1, 2, 3], 'bb': (32, 2), 'new': 44, 'new1': 1, 'new2': 2, 'red': 1}
5, {}
遍历字典
1 | d = {'1': 2, 'aa': [1, 2, 3], 'bb': (32, 2)} |
1
aa
bb
========================================
2
[1, 2, 3]
(32, 2)
========================================
('1', 2)
('aa', [1, 2, 3])
('bb', (32, 2))
========================================
1 2
aa [1, 2, 3]
bb (32, 2)
有序字典
1 | from collections import OrderedDict |
OrderedDict([('k', 'v')])
习题1. 用户输入一个数字,打印每一位数字及其重复的次数
1 | str = "11gghhbsdsa" |
{'1': 2, 'g': 2, 'h': 2, 'b': 1, 's': 2, 'd': 1, 'a': 1}
习题2. 数字重复统计:
1.随机产生100个整数
- 数字的范围[-1000,1000]
- 降序序输出所有不同的数字及其重复的次数
1 | import random |
[(20, 6), (-17, 4), (-30, 3), (41, 3), (-19, 2), (-1, 2), (-47, 2), (-9, 1)]