Python基础 数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)

时间:2022-12-02 15:56:45

数据类型有整型、布尔、字符串、列表、字典、元组、集合、堆、栈和树。

1.整型:

整型就是数字

  1. 数字表示

    • python2

      • 64位机器,范围-2^63~2^63-1

      • 超出上述范围,python自动转化为long(长整型)

        注:long(长整型)数字末尾有一个L

    • python3

      • 所有整型都是int,没有long(长整型)
  2. 整型除法

    • python2:只能保留整数位
    • python3:可以保留所有内容
 十进制:
200
二进制:
01010101010101

 二进制转十进制:

0010 0111
1 * 2**0 + 1 * 2**1 + 1* 2**2 + 1 * 2**5 = 39 十进制转二进制:
Python基础  数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)

Python基础  数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)

     bin():其他进制转换成二进制 0b101
oct():其他进制转换成八进制 0o7
int():其他进制转换成十进制 10 (num,base=10)
hex():其他进制转换成十六进制 0x13
进制之间转换必须通过十进制再进行转换

十进制转其他进制,直接用内置函数强转,其他进制转十进制就麻烦一点

 a = '0b01011101'
ret = int(a,base=2) #这里的base的值必须和进制数相同
print(ret)
 将ip = '192.168.12.79' 中的每个十进制转换成二进制:
再将二进制转换成十进制
lst = []
lst1 = []
ip = '192.168.12.79'
for i in ip.split('.'):
ret = bin(int(i))
ret1 = lst.append(ret)
for i in lst:
i = i.replace('0b','')
if len(i) == 8:
lst1.append(i)
else:
i = i.replace(i,''*(8-len(i))+i)
lst1.append(i)
ret2 = ','.join(lst1).replace(',','')
# print(ret2) # 11000000101010000000110001001111
ret3 = int(ret2,base=2)
print(ret3)
查看二进制的有效位数:
 int
i = 1000
print(i.bit_length()) 结果: 10
2.bool布尔:
True
False 布尔值为False的情况:
非零即True:数字0
非空即True:''、[]、{}、()、None 3.字符串(不可变类型):
字符串源码:
1 class str(basestring):
2 """
3 str(object='') -> string
4
5 Return a nice string representation of the object.
6 If the argument is a string, the return value is the same object.
7 """
8 def capitalize(self):
9 """ 首字母变大写 """
10 """
11 S.capitalize() -> string
12
13 Return a copy of the string S with only its first character
14 capitalized.
15 """
16 return ""
17
18 def center(self, width, fillchar=None):
19 """ 内容居中,width:总长度;fillchar:空白处填充内容,默认无 """
20 """
21 S.center(width[, fillchar]) -> string
22
23 Return S centered in a string of length width. Padding is
24 done using the specified fill character (default is a space)
25 """
26 return ""
27
28 def count(self, sub, start=None, end=None):
29 """ 子序列个数 """
30 """
31 S.count(sub[, start[, end]]) -> int
32
33 Return the number of non-overlapping occurrences of substring sub in
34 string S[start:end]. Optional arguments start and end are interpreted
35 as in slice notation.
36 """
37 return 0
38
39 def decode(self, encoding=None, errors=None):
40 """ 解码 """
41 """
42 S.decode([encoding[,errors]]) -> object
43
44 Decodes S using the codec registered for encoding. encoding defaults
45 to the default encoding. errors may be given to set a different error
46 handling scheme. Default is 'strict' meaning that encoding errors raise
47 a UnicodeDecodeError. Other possible values are 'ignore' and 'replace'
48 as well as any other name registered with codecs.register_error that is
49 able to handle UnicodeDecodeErrors.
50 """
51 return object()
52
53 def encode(self, encoding=None, errors=None):
54 """ 编码,针对unicode """
55 """
56 S.encode([encoding[,errors]]) -> object
57
58 Encodes S using the codec registered for encoding. encoding defaults
59 to the default encoding. errors may be given to set a different error
60 handling scheme. Default is 'strict' meaning that encoding errors raise
61 a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and
62 'xmlcharrefreplace' as well as any other name registered with
63 codecs.register_error that is able to handle UnicodeEncodeErrors.
64 """
65 return object()
66
67 def endswith(self, suffix, start=None, end=None):
68 """ 是否以 xxx 结束 """
69 """
70 S.endswith(suffix[, start[, end]]) -> bool
71
72 Return True if S ends with the specified suffix, False otherwise.
73 With optional start, test S beginning at that position.
74 With optional end, stop comparing S at that position.
75 suffix can also be a tuple of strings to try.
76 """
77 return False
78
79 def expandtabs(self, tabsize=None):
80 """ 将tab转换成空格,默认一个tab转换成8个空格 """
81 """
82 S.expandtabs([tabsize]) -> string
83
84 Return a copy of S where all tab characters are expanded using spaces.
85 If tabsize is not given, a tab size of 8 characters is assumed.
86 """
87 return ""
88
89 def find(self, sub, start=None, end=None):
90 """ 子序列位置,如果没找到,则返回-1 """
91 """
92 S.find(sub [,start [,end]]) -> int
93
94 Return the lowest index in S where substring sub is found,
95 such that sub is contained within S[start:end]. Optional
96 arguments start and end are interpreted as in slice notation.
97
98 Return -1 on failure.
99 """
100 return 0
101
102 def format(*args, **kwargs): # known special case of str.format
103 """ 字符串格式化,动态参数,将函数式编程时细说 """
104 """
105 S.format(*args, **kwargs) -> string
106
107 Return a formatted version of S, using substitutions from args and kwargs.
108 The substitutions are identified by braces ('{' and '}').
109 """
110 pass
111
112 def index(self, sub, start=None, end=None):
113 """ 寻找子序列位置,如果没找到,则异常 """
114 S.index(sub [,start [,end]]) -> int
115
116 Like S.find() but raise ValueError when the substring is not found.
117 """
118 return 0
119
120 def isalnum(self):
121 """ 是否是字母和数字 """
122 """
123 S.isalnum() -> bool
124
125 Return True if all characters in S are alphanumeric
126 and there is at least one character in S, False otherwise.
127 """
128 return False
129
130 def isalpha(self):
131 """ 是否是字母 """
132 """
133 S.isalpha() -> bool
134
135 Return True if all characters in S are alphabetic
136 and there is at least one character in S, False otherwise.
137 """
138 return False
139
140 def isdigit(self):
141 """ 是否是数字 """
142 """
143 S.isdigit() -> bool
144
145 Return True if all characters in S are digits
146 and there is at least one character in S, False otherwise.
147 """
148 return False
149
150 def islower(self):
151 """ 是否小写 """
152 """
153 S.islower() -> bool
154
155 Return True if all cased characters in S are lowercase and there is
156 at least one cased character in S, False otherwise.
157 """
158 return False
159
160 def isspace(self):
161 """
162 S.isspace() -> bool
163
164 Return True if all characters in S are whitespace
165 and there is at least one character in S, False otherwise.
166 """
167 return False
168
169 def istitle(self):
170 """
171 S.istitle() -> bool
172
173 Return True if S is a titlecased string and there is at least one
174 character in S, i.e. uppercase characters may only follow uncased
175 characters and lowercase characters only cased ones. Return False
176 otherwise.
177 """
178 return False
179
180 def isupper(self):
181 """
182 S.isupper() -> bool
183
184 Return True if all cased characters in S are uppercase and there is
185 at least one cased character in S, False otherwise.
186 """
187 return False
188
189 def join(self, iterable):
190 """ 连接 """
191 """
192 S.join(iterable) -> string
193
194 Return a string which is the concatenation of the strings in the
195 iterable. The separator between elements is S.
196 """
197 return ""
198
199 def ljust(self, width, fillchar=None):
200 """ 内容左对齐,右侧填充 """
201 """
202 S.ljust(width[, fillchar]) -> string
203
204 Return S left-justified in a string of length width. Padding is
205 done using the specified fill character (default is a space).
206 """
207 return ""
208
209 def lower(self):
210 """ 变小写 """
211 """
212 S.lower() -> string
213
214 Return a copy of the string S converted to lowercase.
215 """
216 return ""
217
218 def lstrip(self, chars=None):
219 """ 移除左侧空白 """
220 """
221 S.lstrip([chars]) -> string or unicode
222
223 Return a copy of the string S with leading whitespace removed.
224 If chars is given and not None, remove characters in chars instead.
225 If chars is unicode, S will be converted to unicode before stripping
226 """
227 return ""
228
229 def partition(self, sep):
230 """ 分割,前,中,后三部分 """
231 """
232 S.partition(sep) -> (head, sep, tail)
233
234 Search for the separator sep in S, and return the part before it,
235 the separator itself, and the part after it. If the separator is not
236 found, return S and two empty strings.
237 """
238 pass
239
240 def replace(self, old, new, count=None):
241 """ 替换 """
242 """
243 S.replace(old, new[, count]) -> string
244
245 Return a copy of string S with all occurrences of substring
246 old replaced by new. If the optional argument count is
247 given, only the first count occurrences are replaced.
248 """
249 return ""
250
251 def rfind(self, sub, start=None, end=None):
252 """
253 S.rfind(sub [,start [,end]]) -> int
254
255 Return the highest index in S where substring sub is found,
256 such that sub is contained within S[start:end]. Optional
257 arguments start and end are interpreted as in slice notation.
258
259 Return -1 on failure.
260 """
261 return 0
262
263 def rindex(self, sub, start=None, end=None):
264 """
265 S.rindex(sub [,start [,end]]) -> int
266
267 Like S.rfind() but raise ValueError when the substring is not found.
268 """
269 return 0
270
271 def rjust(self, width, fillchar=None):
272 """
273 S.rjust(width[, fillchar]) -> string
274
275 Return S right-justified in a string of length width. Padding is
276 done using the specified fill character (default is a space)
277 """
278 return ""
279
280 def rpartition(self, sep):
281 """
282 S.rpartition(sep) -> (head, sep, tail)
283
284 Search for the separator sep in S, starting at the end of S, and return
285 the part before it, the separator itself, and the part after it. If the
286 separator is not found, return two empty strings and S.
287 """
288 pass
289
290 def rsplit(self, sep=None, maxsplit=None):
291 """
292 S.rsplit([sep [,maxsplit]]) -> list of strings
293
294 Return a list of the words in the string S, using sep as the
295 delimiter string, starting at the end of the string and working
296 to the front. If maxsplit is given, at most maxsplit splits are
297 done. If sep is not specified or is None, any whitespace string
298 is a separator.
299 """
300 return []
301
302 def rstrip(self, chars=None):
303 """
304 S.rstrip([chars]) -> string or unicode
305
306 Return a copy of the string S with trailing whitespace removed.
307 If chars is given and not None, remove characters in chars instead.
308 If chars is unicode, S will be converted to unicode before stripping
309 """
310 return ""
311
312 def split(self, sep=None, maxsplit=None):
313 """ 分割, maxsplit最多分割几次 """
314 """
315 S.split([sep [,maxsplit]]) -> list of strings
316
317 Return a list of the words in the string S, using sep as the
318 delimiter string. If maxsplit is given, at most maxsplit
319 splits are done. If sep is not specified or is None, any
320 whitespace string is a separator and empty strings are removed
321 from the result.
322 """
323 return []
324
325 def splitlines(self, keepends=False):
326 """ 根据换行分割 """
327 """
328 S.splitlines(keepends=False) -> list of strings
329
330 Return a list of the lines in S, breaking at line boundaries.
331 Line breaks are not included in the resulting list unless keepends
332 is given and true.
333 """
334 return []
335
336 def startswith(self, prefix, start=None, end=None):
337 """ 是否起始 """
338 """
339 S.startswith(prefix[, start[, end]]) -> bool
340
341 Return True if S starts with the specified prefix, False otherwise.
342 With optional start, test S beginning at that position.
343 With optional end, stop comparing S at that position.
344 prefix can also be a tuple of strings to try.
345 """
346 return False
347
348 def strip(self, chars=None):
349 """ 移除两段空白 """
350 """
351 S.strip([chars]) -> string or unicode
352
353 Return a copy of the string S with leading and trailing
354 whitespace removed.
355 If chars is given and not None, remove characters in chars instead.
356 If chars is unicode, S will be converted to unicode before stripping
357 """
358 return ""
359
360 def swapcase(self):
361 """ 大写变小写,小写变大写 """
362 """
363 S.swapcase() -> string
364
365 Return a copy of the string S with uppercase characters
366 converted to lowercase and vice versa.
367 """
368 return ""
369
370 def title(self):
371 """
372 S.title() -> string
373
374 Return a titlecased version of S, i.e. words start with uppercase
375 characters, all remaining cased characters have lowercase.
376 """
377 return ""
378
379 def translate(self, table, deletechars=None):
380 """
381 转换,需要先做一个对应表,最后一个表示删除字符集合
382 intab = "aeiou"
383 outtab = ""
384 trantab = maketrans(intab, outtab)
385 str = "this is string example....wow!!!"
386 print str.translate(trantab, 'xm')
387 """
388
389 """
390 S.translate(table [,deletechars]) -> string
391
392 Return a copy of the string S, where all characters occurring
393 in the optional argument deletechars are removed, and the
394 remaining characters have been mapped through the given
395 translation table, which must be a string of length 256 or None.
396 If the table argument is None, no translation is applied and
397 the operation simply removes the characters in deletechars.
398 """
399 return ""
400
401 def upper(self):
402 """
403 S.upper() -> string
404
405 Return a copy of the string S converted to uppercase.
406 """
407 return ""
408
409 def zfill(self, width):
410 """方法返回指定长度的字符串,原字符串右对齐,前面填充0。"""
411 """
412 S.zfill(width) -> string
413
414 Pad a numeric string S with zeros on the left, to fill a field
415 of the specified width. The string S is never truncated.
416 """
417 return ""
418
419 def _formatter_field_name_split(self, *args, **kwargs): # real signature unknown
420 pass
421
422 def _formatter_parser(self, *args, **kwargs): # real signature unknown
423 pass
424
425 def __add__(self, y):
426 """ x.__add__(y) <==> x+y """
427 pass
428
429 def __contains__(self, y):
430 """ x.__contains__(y) <==> y in x """
431 pass
432
433 def __eq__(self, y):
434 """ x.__eq__(y) <==> x==y """
435 pass
436
437 def __format__(self, format_spec):
438 """
439 S.__format__(format_spec) -> string
440
441 Return a formatted version of S as described by format_spec.
442 """
443 return ""
444
445 def __getattribute__(self, name):
446 """ x.__getattribute__('name') <==> x.name """
447 pass
448
449 def __getitem__(self, y):
450 """ x.__getitem__(y) <==> x[y] """
451 pass
452
453 def __getnewargs__(self, *args, **kwargs): # real signature unknown
454 pass
455
456 def __getslice__(self, i, j):
457 """
458 x.__getslice__(i, j) <==> x[i:j]
459
460 Use of negative indices is not supported.
461 """
462 pass
463
464 def __ge__(self, y):
465 """ x.__ge__(y) <==> x>=y """
466 pass
467
468 def __gt__(self, y):
469 """ x.__gt__(y) <==> x>y """
470 pass
471
472 def __hash__(self):
473 """ x.__hash__() <==> hash(x) """
474 pass
475
476 def __init__(self, string=''): # known special case of str.__init__
477 """
478 str(object='') -> string
479
480 Return a nice string representation of the object.
481 If the argument is a string, the return value is the same object.
482 # (copied from class doc)
483 """
484 pass
485
486 def __len__(self):
487 """ x.__len__() <==> len(x) """
488 pass
489
490 def __le__(self, y):
491 """ x.__le__(y) <==> x<=y """
492 pass
493
494 def __lt__(self, y):
495 """ x.__lt__(y) <==> x<y """
496 pass
497
498 def __mod__(self, y):
499 """ x.__mod__(y) <==> x%y """
500 pass
501
502 def __mul__(self, n):
503 """ x.__mul__(n) <==> x*n """
504 pass
505
506 @staticmethod # known case of __new__
507 def __new__(S, *more):
508 """ T.__new__(S, ...) -> a new object with type S, a subtype of T """
509 pass
510
511 def __ne__(self, y):
512 """ x.__ne__(y) <==> x!=y """
513 pass
514
515 def __repr__(self):
516 """ x.__repr__() <==> repr(x) """
517 pass
518
519 def __rmod__(self, y):
520 """ x.__rmod__(y) <==> y%x """
521 pass
522
523 def __rmul__(self, n):
524 """ x.__rmul__(n) <==> n*x """
525 pass
526
527 def __sizeof__(self):
528 """ S.__sizeof__() -> size of S in memory, in bytes """
529 pass
530
531 def __str__(self):
532 """ x.__str__() <==> str(x) """
533 pass

  4.列表(可变类型)

 class list(object):
"""
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
"""
def append(self, p_object): # real signature unknown; restored from __doc__
""" L.append(object) -- append object to end """
pass def count(self, value): # real signature unknown; restored from __doc__
""" L.count(value) -> integer -- return number of occurrences of value """
return 0 def extend(self, iterable): # real signature unknown; restored from __doc__
""" L.extend(iterable) -- extend list by appending elements from the iterable """
pass def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
"""
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present.
"""
return 0 def insert(self, index, p_object): # real signature unknown; restored from __doc__
""" L.insert(index, object) -- insert object before index """
pass def pop(self, index=None): # real signature unknown; restored from __doc__
"""
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
"""
pass def remove(self, value): # real signature unknown; restored from __doc__
"""
L.remove(value) -- remove first occurrence of value.
Raises ValueError if the value is not present.
"""
pass def reverse(self): # real signature unknown; restored from __doc__
""" L.reverse() -- reverse *IN PLACE* """
pass def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__
"""
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) -> -1, 0, 1
"""
pass def __add__(self, y): # real signature unknown; restored from __doc__
""" x.__add__(y) <==> x+y """
pass def __contains__(self, y): # real signature unknown; restored from __doc__
""" x.__contains__(y) <==> y in x """
pass def __delitem__(self, y): # real signature unknown; restored from __doc__
""" x.__delitem__(y) <==> del x[y] """
pass def __delslice__(self, i, j): # real signature unknown; restored from __doc__
"""
x.__delslice__(i, j) <==> del x[i:j] Use of negative indices is not supported.
"""
pass def __eq__(self, y): # real signature unknown; restored from __doc__
""" x.__eq__(y) <==> x==y """
pass def __getattribute__(self, name): # real signature unknown; restored from __doc__
""" x.__getattribute__('name') <==> x.name """
pass def __getitem__(self, y): # real signature unknown; restored from __doc__
""" x.__getitem__(y) <==> x[y] """
pass def __getslice__(self, i, j): # real signature unknown; restored from __doc__
"""
x.__getslice__(i, j) <==> x[i:j] Use of negative indices is not supported.
"""
pass def __ge__(self, y): # real signature unknown; restored from __doc__
""" x.__ge__(y) <==> x>=y """
pass def __gt__(self, y): # real signature unknown; restored from __doc__
""" x.__gt__(y) <==> x>y """
pass def __iadd__(self, y): # real signature unknown; restored from __doc__
""" x.__iadd__(y) <==> x+=y """
pass def __imul__(self, y): # real signature unknown; restored from __doc__
""" x.__imul__(y) <==> x*=y """
pass def __init__(self, seq=()): # known special case of list.__init__
"""
list() -> new empty list
list(iterable) -> new list initialized from iterable's items
# (copied from class doc)
"""
pass def __iter__(self): # real signature unknown; restored from __doc__
""" x.__iter__() <==> iter(x) """
pass def __len__(self): # real signature unknown; restored from __doc__
""" x.__len__() <==> len(x) """
pass def __le__(self, y): # real signature unknown; restored from __doc__
""" x.__le__(y) <==> x<=y """
pass def __lt__(self, y): # real signature unknown; restored from __doc__
""" x.__lt__(y) <==> x<y """
pass def __mul__(self, n): # real signature unknown; restored from __doc__
""" x.__mul__(n) <==> x*n """
pass @staticmethod # known case of __new__
def __new__(S, *more): # real signature unknown; restored from __doc__
""" T.__new__(S, ...) -> a new object with type S, a subtype of T """
pass def __ne__(self, y): # real signature unknown; restored from __doc__
""" x.__ne__(y) <==> x!=y """
pass def __repr__(self): # real signature unknown; restored from __doc__
""" x.__repr__() <==> repr(x) """
pass def __reversed__(self): # real signature unknown; restored from __doc__
""" L.__reversed__() -- return a reverse iterator over the list """
pass def __rmul__(self, n): # real signature unknown; restored from __doc__
""" x.__rmul__(n) <==> n*x """
pass def __setitem__(self, i, y): # real signature unknown; restored from __doc__
""" x.__setitem__(i, y) <==> x[i]=y """
pass def __setslice__(self, i, j, y): # real signature unknown; restored from __doc__
"""
x.__setslice__(i, j, y) <==> x[i:j]=y Use of negative indices is not supported.
"""
pass def __sizeof__(self): # real signature unknown; restored from __doc__
""" L.__sizeof__() -- size of L in memory, in bytes """
pass __hash__ = None
  • 公共
    • 索引
    • 切片
    • 步长
    • 修改
    • 删除 del
    • for
    • len
  • 独有
    • append
    • insert
    • pop
    • remove
    • clear
  • 列表嵌套

5.元组 (不可变类型)

  • 公共

    • 索引
    • 切片
    • 步长
    • for
    • len
  • 独有功能(无)

  • 元组嵌套

6. 栈

 class Stack(object):
"""
后进先出
"""
def __init__(self):
self.data_list = [] def push(self, val):
"""
向栈中压入一个数据(入栈)
:param val:
:return:
"""
self.data_list.append(val) def pop(self):
"""
从栈中拿走一个数据(出栈)
:return:
"""
return self.data_list.pop()

class Stack(object):
def __init__(self,):
self.list = [] def push(self):
num = int(input('>>>'))
for i in range(num):
self.list.append(i)
for item in self.list:
print(item) def out(self):
for i in range(len(self.list)):
ret = self.list.pop()
print('stack_out:',ret)
s1 = Stack()
s1.push()
s1.out()

7.  队列

 from collections import deque
class Queue(object):
def __init__(self,):
self.list = [] def push(self):
num = int(input('>>>'))
for i in range(num+1):
self.list.append(i)
for item in self.list:
print(item) def out(self):
v = deque(self.list) #列表
for i in range(len(self.list)):
ret = v.popleft()
print(ret) q = Queue()
q.push()
q.out()

8. 返回值判断


无返回值:
append
insert
remove 仅有返回值
strip
split
join
replace
upper
lower get
keys
values
items
有返回值+修改数据
pop