7、str字符串、int整数、list列表、dict字典、set集合、tuple元祖功能详解

  1 ######################################## str 字符串 及类中的各种技能##########################################
  2 
  3 # 1. capitalize 字符串首字母大写
  4 # 自身不变,会生成一个新的值
  5 # name = 'deasion' # str类的对象
  6 # v = name.capitalize() # 自动找到name关联的str类,执行其中的capitalize技能
  7 # print(v)
  8 
  9 # 2. 将所有大小变小写,casefold
 10 # name = 'DeasioN'
 11 # v = name.casefold() # 更牛,也可把德语及其他语言变小写
 12 # print(v)
 13 
 14 # 3. 将所有大小变小写,只作用于英文字母
 15 # name = 'DeasioN'
 16 # v = name.lower()
 17 # print(v)
 18 
 19 # 4. 文本居中
 20 # 参数1: 表示总长度
 21 # 参数2:空白处填充的字符(长度为1)
 22 # name = 'deasion'
 23 # v = name.center(20)
 24 # print(v)
 25 # v = name.center(20,'*')
 26 # print(v)
 27 
 28 # 5. 表示传入值在字符串中出现的次数
 29 # 参数1: 要查找的值(子序列)
 30 # 参数2: 起始位置(索引)
 31 # 参数3: 结束位置(索引)
 32 # name = "dassdasdfdsafsdfasdfaaaaaaaa"
 33 # v = name.count('a')
 34 # print(v)
 35 # v = name.count('df')
 36 # print(v)
 37 
 38 # v = name.count('df',12)
 39 # print(v)
 40 # v = name.count('df',0,15)
 41 # print(v)
 42 
 43 # 6. 是否以xx结尾
 44 # name = 'deasion'
 45 # v1 = name.endswith('on')
 46 # print(v1)
 47 
 48 # 7. 是否以xx开头
 49 # name = 'deasion'
 50 # v2 = name.startswith('de')
 51 # print(v2)
 52 
 53 # 8. ****encode转换成字节****
 54 # name = "李杰"
 55 # v1 = name.encode(encoding='utf-8') # 字节类型
 56 # print(v1)
 57 # v2 = name.encode(encoding='gbk') # 字节类型
 58 # print(v2)
 59 
 60 
 61 # 9. 找到制表符\t,进行替换(包含前面的值)
 62 #PS: \n
 63 # name = "al\te\tx\nalex\tuu\tkkk"
 64 # v = name.expandtabs(20)
 65 # print(v)
 66 
 67 # 10. 找到指定子序列的索引位置:不存在返回-1
 68 # name = 'alex'
 69 # v = name.find('o')
 70 # print(v)
 71 # index 如果子序列没有值,就会返回报错
 72 # v = name.index('e')
 73 # print(v)
 74 
 75 # 11.字符串格式化
 76 
 77 # 第一种
 78 #  tpl = "我是:%s;年龄:%s;性别:%s"
 79 # 第二种:
 80 # tpl = "我是:{0};年龄:{1};性别:{2}"
 81 # v = tpl.format("李杰",19,'都行')
 82 # print(v)
 83 # 第三种
 84 # tpl = "我是:{name};年龄:{age};性别:{gender}"
 85 # v = tpl.format(name='李杰',age=19,gender='随意')
 86 # print(v)
 87 
 88 # tpl = "我是:{name};年龄:{age};性别:{gender}"
 89 # v = tpl.format_map({'name':"李杰",'age':19,'gender':'中'})
 90 # print(v)
 91 
 92 
 93 # 12. 是否是数字、汉字.
 94 # name  = '哈哈'
 95 # v = name.isalnum() # 字,数字
 96 # print(v) # True
 97 #
 98 # v2 = name.isalpha()#字母、汉字,没有数字
 99 # print(v2)# False
100 
101 # 13. 判断是否是数字
102 # num = '②'
103 # v1 = num.isdecimal() # '123'
104 # v2 = num.isdigit()   # '123','②'
105 # v3 = num.isnumeric() # '123','二','②'
106 # print(v1,v2,v3)
107 
108 
109 # 14. 是否是标识符
110 # n = 'name'
111 # v = n.isidentifier()
112 # print(v)
113 
114 # 15.是否全部是小写
115 # name = "alsX"
116 # v = name.islower()
117 # print(v)
118 # 是否全部是大写
119 # v = name.isupper()
120 # print(v)
121 
122 # 16,.全部变大写,
123 # name = 'aleX'
124 # v = name.upper()
125 # print(v)
126 # 全部变小写
127 # v = name.lower()
128 # print(v)
129 
130 # 17.是否包含隐含的xx
131 # name = "钓鱼要钓刀鱼,\n刀鱼要到岛上钓"
132 # v = name.isprintable()
133 # print(v)
134 
135 
136 # 18.是否全部是空格
137 # name = '    '
138 # v = name.isspace()
139 # print(v)
140 
141 
142 
143 # 19.元素拼接(元素字符串) *****
144 
145 # name = 'alex'
146 # v = "_".join(name) # 内部循环每个元素
147 # print(v)
148 #
149 # name_list = ['海峰','杠娘','s杰','小四']
150 # v = "搞".join(name_list)
151 # print(v)
152 
153 # 20. 左右填充
154 # center,rjust,ljust
155 # name = 'alex'
156 # v = name.rjust(20,'*')
157 # print(v)
158 
159 
160 # 21. 对应关系 + 翻译
161 # m = str.maketrans('aeiou','12345') # 对应关系
162 # name = "akpsojfasdufasdlkfj8ausdfakjsdfl;kjer09asdf"
163 # v = name.translate(m)
164 # print(v)
165 
166 # 22. 分割,保留分割的元素
167 # content = "李泉SB刘康SB刘一"
168 # v = content.partition('SB') # partition
169 # print(v)
170 
171 # 23. 替换
172 # content = "李泉SB刘康SB刘浩SB刘一"
173 # v = content.replace('SB','Love')
174 # print(v)
175 # v = content.replace('SB','Love',1) # 1表示替换一个
176 # print(v)
177 
178 # 24,移除空白,\n,\t,自定义
179 # name = 'alex\t'
180 # v = name.strip() # 空白,\n,\t
181 # print(v)
182 
183 # 25. 大小写转换
184 # name = "Deasion"
185 # v = name.swapcase()
186 # print(v)
187 
188 # 26. 填充0
189 # name = "alex"
190 # v = name.zfill(20)
191 # print(v)
192 
193 # 27.字符串隐藏的__add__
194 # v1 = 'alex'
195 # v2 = 'eric'
196 # v = v1 + v2 # 执行v1的__add__功能
197 # print(v)
198 
199 
200 ###### 字符串功能总结:
201 # name = 'alex'
202 # name.upper()
203 # name.lower()
204 # name.split()
205 # name.find()
206 # name.strip()
207 # name.startswith()
208 # name.format()
209 # name.replace()
210 # "alex".join(["aa",'bb'])
211 
212 
213 # ##### 额外功能:
214 # name = "alex"
215 # name[0]
216 # name[0:3]
217 # name[0:3:2]
218 # len(name)
219 # for循环,每个元素是字符
220 
221 
222 # 练习题
223 # name = "aleX"
224 # a
225 # v = name.strip()
226 # print(v)
227 # b
228 # v = name.startswith('al')
229 # print(v)
230 # v = name.replace('l','p')
231 # print(v)
232 
233 # v = name.split('l')
234 # print(v) # 列表
235 
236 # **** 转换成字节 ****
237 # name = "李杰"
238 # v1 = name.encode(encoding='utf-8') # 字节类型
239 # print(v1)
240 # v2 = name.encode(encoding='gbk') # 字节类型
241 # print(v2)
242 
243 
244 # ########################################## int 整数 ##########################################
245 
246 # 1. 当前整数的二进制表示,最少位数
247 # age = 4 # 100
248 # print(age.bit_length())
249 
250 # 2. 获取当前数据的字节表示
251 # age = 15
252 # v = age.to_bytes(10,byteorder='big')
253 # #v = age.to_bytes(10,byteorder='little')
254 # print(v)
255 # #00000000 00001111 -> 15
256 
257 # ########################################## bool 布尔值 ##########################################
258 # v = 0 # 1,-1
259 # v = ""
260 # v = []
261 # --> 空内容:False
262 
263 # ########################################## list 列表 ##########################################
264 # ## int=xx; str='xxx'  list='xx'
265 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
266 # PS:
267     # name = 'alex'
268 # 执行功能;
269 # 1.追加
270 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
271 # user_list.append('刘铭')
272 # print(user_list)
273 # 2. 清空
274 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
275 # user_list.clear()
276 # print(user_list)
277 
278 # 3. 拷贝(浅拷贝)
279 # user_list = ['李泉','刘一','刘康','豆豆','小龙'] # 可变类型
280 # v = user_list.copy()
281 # print(v)
282 # print(user_list)
283 
284 # 4. 计数
285 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
286 # v = user_list.count('李泉')
287 # print(v)
288 
289 # 5. 扩展原列表
290 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
291 # user_list.extend(['郭少龙','郭少霞'])
292 # print(user_list)
293 
294 # 6. 查找元素索引,没有报错
295 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
296 # v = user_list.index('李海')
297 # print(v)
298 
299 # 7. 删除并且获取元素 - 索引
300 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
301 # v = user_list.pop(1)
302 # print(v)
303 # print(user_list)
304 
305 # 8. 删除 - 值
306 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
307 # user_list.remove('刘一')
308 # print(user_list)
309 
310 # 9. 翻转
311 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙'] # 可变类型
312 # user_list.reverse()
313 # print(user_list)
314 
315 # 10. 排序: 欠参数
316 # nums = [11,22,3,3,9,88]
317 # print(nums)
318 # #排序,从小到大
319 # nums.sort()
320 # print(nums)
321 # #从大到小
322 # nums.sort(reverse=True)
323 # print(nums)
324 
325 ######  额外:
326 # user_list = ['李泉','刘一','李泉','刘康','豆豆','小龙']
327 # user_list[0]
328 # user_list[1:5:2]
329 # del user_list[3]
330 # for i in user_list:
331 #     print(i)
332 # user_list[1] = '姜日天'
333 # user_list = ['李泉','刘一','李泉','刘康','豆豆',['日天','日地','泰迪'],'小龙']
334 
335 
336 li = ['eric','alex','tony']
337 
338 v = len(li)
339 print(v)
340 #
341 # li.append('seven')
342 # print(li)
343 #
344 # li.insert(0,'Tony')
345 # print(li)
346 #
347 # li[1] = 'Kelly'
348 #
349 # li.remove('eric')
350 # print(list)
351 #
352 # v = li.pop(1)
353 # print(v)
354 # print(li)
355 #
356 # del li[2]
357 
358 
359 # del li[0:2] # 0 =<x < 2
360 # print(li)
361 
362 # li.reverse()
363 # print(li)
364 
365 # for i in li:
366 #     print(i)
367 
368 # ######################################### 强插:range,enumrate #########################################
369 # 1. 请输出1-10
370 # 2.7: 立即生成所有数字
371 # range(1,11) # 生成 1,23,,4,56.10
372 
373 # 3.x: 不会立即生成,只有循环迭代时,才一个一个生成
374 # for i in range(1,11): #
375 #     print(i)
376 
377 # for i in range(1,11,2): #
378 #     print(i)
379 
380 # for i in range(10,0,-1): #
381 #     print(i)
382 
383 # 1. 3.x 不会立生成,迭代之后才一个一个创建;
384 # """
385 #     - 2.7:
386 #         range()
387 #         xrange()  不会立生成,迭代之后才一个一个创建;
388 #     - 3.x
389 #         range()  不会立生成,迭代之后才一个一个创建;
390 # """
391 # 2. range: 三个参数
392 #
393 li = ['eric','alex','tony']
394 # range,len,li循环
395 for i in range(0,len(li)):
396     ele = li[i]
397     print(ele)
398 
399 
400 # li = ['eric','alex','tony']
401 # for i in li:
402 #     print(i)
403 
404 # li = ['eric','alex','tony']
405 # for i in range(0,len(li)):
406 #     print(i+1,li[i])
407 
408 
409 # enumerate额外生成一列有序的数字
410 # li = ['eric','alex','tony']
411 # for i,ele in enumerate(li,1):
412 #     print(i,ele)
413 #
414 # v = input('请输入商品序号:')
415 # v = int(v)
416 # item = li[v-1]
417 # print(item)
418 
419 # ######################################### tuple:元组,不可被修改的列表;不可变类型 #########################################
420 # user_tuple = ('alex','eric','seven','alex')
421 # 1. 获取个数
422 # v = user_tuple.count('alex')
423 # print(v)
424 # 2.获取值的第一个索引位置
425 # v = user_tuple.index('alex')
426 # print(v)
427 
428 ####### 额外:
429 # user_tuple = ('alex','eric','seven','alex')
430 # for i in user_tuple:
431 #     print(i)
432 
433 # v = user_tuple[0]
434 
435 # v = user_tuple[0:2]
436 # print(v)
437 
438 # user_tuple = ('alex','eric','seven',['陈涛','刘浩','赵芬芬'],'alex')
439 # user_tuple[0] = 123   x
440 # user_tuple[3] = [11,22,33] x
441 # user_tuple[3][1] = '刘一'
442 # print(user_tuple)
443 
444 # li = ['陈涛','刘浩',('alex','eric','seven'),'赵芬芬']
445 # ****** 元组最后,加逗号 ******
446 # li = ('alex',)
447 # print(li)
448 
449 # ######################################### dict:字典: 可变类型 #########################################
450 
451 # 1. 清空、
452 # dic = {'k1':'v1','k2':'v2'}
453 # dic.clear()
454 # print(dic)
455 
456 # 2. 浅拷贝
457 # dic = {'k1':'v1','k2':'v2'}
458 # v = dic.copy()
459 # print(v)
460 
461 # 3. 根据key获取指定的value;不存在不报错
462 # dic = {'k1':'v1','k2':'v2'}
463 # v = dic.get('k1111',1111)
464 # print(v)
465 # v = dic['k1111']
466 # print(v)
467 
468 # 4. 删除并获取对应的value值
469 # dic = {'k1':'v1','k2':'v2'}
470 # v = dic.pop('k1')
471 # print(dic)
472 # print(v)
473 
474 # 5. 随机删除键值对,并获取到删除的键值
475 # dic = {'k1':'v1','k2':'v2'}
476 # v = dic.popitem()
477 # print(dic)
478 # print(v)
479 
480 # dic = {'k1':'v1','k2':'v2'}
481 # k,v = dic.popitem() # ('k2', 'v2')
482 # print(dic)
483 # print(k,v)
484 
485 # dic = {'k1':'v1','k2':'v2'}
486 # v = dic.popitem() # ('k2', 'v2')
487 # print(dic)
488 # print(v[0],v[1])
489 
490 # 6. 增加,如果存在则不做操作
491 # dic = {'k1':'v1','k2':'v2'}
492 # dic.setdefault('k3','v3')
493 # print(dic)
494 # dic.setdefault('k1','1111111')
495 # print(dic)
496 
497 # 7. 批量增加或修改
498 # dic = {'k1':'v1','k2':'v2'}
499 # dic.update({'k3':'v3','k1':'v24'})
500 # print(dic)
501 
502 
503 # dic = dict.fromkeys(['k1','k2','k3'],123)
504 # print(dic)
505 # dic = dict.fromkeys(['k1','k2','k3'],123)
506 # dic['k1'] = 'asdfjasldkf'
507 # print(dic)
508 
509 # dic = dict.fromkeys(['k1','k2','k3'],[1,])
510 # dic = {
511 #    k1: 123123213, # [1,2]
512 #    k2: 123123213, # [1,]
513 #    k3: 123123213, # [1,]
514 # }
515 # dic['k1'].append(222)
516 # print(dic)
517 # ########## 额外:
518 # - 字典可以嵌套
519 # - 字典key: 必须是不可变类型
520 # dic = {
521 #     'k1': 'v1',
522 #     'k2': [1,2,3,],
523 #     (1,2): 'lllll',
524 #     1: 'fffffffff',
525 #     111: 'asdf',
526 # }
527 # print(dic)
528 # key:
529 #     - 不可变
530 #     - True,1
531 
532 # dic = {'k1':'v1'}
533 # del dic['k1']
534 
535 # 布尔值:
536 # 1 True
537 # 0 False
538 #
539 # bool(1111)
540 
541 
542 # ##################################### set,集合,不可重复的列表;可变类型 #####################################
543 # s1 = {"alex",'eric','tony','李泉','李泉11'}
544 # s2 = {"alex",'eric','tony','刘一'}
545 
546 # 1.s1中存在,s2中不存在
547 # v = s1.difference(s2)
548 # print(v)
549 # #### s1中存在,s2中不存在,然后对s1清空,然后在重新复制
550 # s1.difference_update(s2)
551 # print(s1)
552 
553 # 2.s2中存在,s1中不存在
554 # v = s2.difference(s1)
555 # print(v)
556 
557 # 3.s2中存在,s1中不存在
558 # s1中存在,s2中不存在
559 # v = s1.symmetric_difference(s2)
560 # print(v)
561 # 4. 交集
562 # v = s1.intersection(s2)
563 # print(v)
564 # 5. 并集
565 # v = s1.union(s2)
566 # print(v)
567 
568 # 6. 移除
569 # s1 = {"alex",'eric','tony','李泉','李泉11'}
570 # s1.discard('alex')
571 # print(s1)
572 
573 # s1 = {"alex",'eric','tony','李泉','李泉11'}
574 # s1.update({'alex','123123','fff'})
575 # print(s1)
576 # ##### 额外:
577 
578 # s1 = {"alex",'eric','tony','李泉','李泉11'}
579 # for i in s1:
580 #     print(i)
581 
582 # s1 = {"alex",'eric','tony','李泉','李泉11',(11,22,33)}
583 # for i in s1:
584 #     print(i)

 

posted @ 2017-05-13 10:25  Deasion  阅读(383)  评论(0编辑  收藏  举报