和Java类似,Python实现了丰富的基本数据结构,但是使用方式和Java有所不同
字符类型
- Python中没有Java以及C++一样的字符类型,只有字符串类型
字符和数字的比较
'a'
表示的不是字符’a’, 而是字符串”a”,也就是说0 < 'a'
这样的写法是不可以的,因为'a'
不是一个数字- 若非要和数字比较,方式如下:
1
2
3
4
5
6
7
8
9
10
11string = "12_abc*ABZ-="
alphanumeric_str = ""
for char in string:
if (ord(char) >= ord('0') and ord(char) <= ord('9'))\
or (ord(char) >= ord('a') and ord(char) <= ord('z'))\
or (ord(char) >= ord('A') and ord(char) <= ord('Z')):
alphanumeric_str += char
print(alphanumeric_str)
# output:
12abcABZ
集合类型的复制
浅拷贝
以list为例
1 | l = [1, 2, 3] |
深拷贝
1 | import copy |
format函数的使用
format是用于格化式字符串的函数
format是字符串自带的函数
1
2
3
4
5
6
7
8
9
10
11# format string
print "{} {}".format("hello", "world")
print "{0} {1}".format("hello", "world")
print "{1} {0} {1}".format("hello", "world")
# output
'hello world'
'hello world'
'world hello world'
# format number
print "{:.2f}".format(3.1415926)其他使用方式之后再补充
字符串到数字的转换
1 | # string to integer, int(str, base=10) |
进制转换
转换示例
1 | # binary, octonary, hexadecimal to decimal(from string) |
总结:
- 词的表示为十进制(
123
), 二进制(0b110
), 八进制(0567
), 十六进制(0xff1
) - 词的转换函数如下:
十进制 | 二进制 | 八进制 | 十六进制 | |
---|---|---|---|---|
表示 | 123 | 0b110 | 0567 | 0xff1 |
函数 | int | bin | oct | hex |
map函数的使用
定义
Python3
1
map(function, iterable, ...) -> map
Python2
1
map(function, iterable, ...) -> list
示例
1 | # Python2 |