zoukankan      html  css  js  c++  java
  • 环境小硕的转行之路-5-字符串语句、列表、字典

    列表、字典、字符串常用语法


    字符串常用语法

    输入:

     1 #author : negu
     2 # -*- coding: utf-8 -*-
     3 name = 'my name is negu'
     4 print(1,name.capitalize()) #首字母大写
     5 print(2,name.count("a"))#输出'my name is negu'中'a'的个数
     6 print(3,name.casefold())#基本上用不着,将字符串全转换为小数
     7 print(4,name.center(50,"-"))#一共打印50个字符,不够的话用-填充
     8 print(5,name.encode())#解码
     9 print(6,name.endswith("gu"))#判断是否以'gu'结尾?输出布尔值
    10 print(7,name.expandtabs(tabsize=30))#在字符串中的'	'位置转为tablesize个空格
    11 print(8,name.find("name"))#查找字符串的位置(从0开始算),用于字符串切片
    12 print(9,name[name.find("name")]) #字符串切片
    13 name1 = 'my name is {name} and i am {age} old.'
    14 print(10,name1.format(name = 'negu', age = 22)) #格式化
    15 print(11,name1.format_map({'name':'negu','age':22})) #这是一个字典
    16 print(12,name.index('negu'))#索引某个字符串的位置
    17 print(13,'ab23'.isalnum())#是否只包含阿拉伯和拉丁字符,返回布尔值.
    18 print(14,'ABab'.isalpha())#是否只包含拉丁字符,返回布尔值.
    19 print(15,'12'.isdecimal())#是否是十进制,返回布尔值.
    20 print(16,name.isdigit())#字符串是否只包含数字
    21 print(17,name.isidentifier())#判断是不是一个合法标识符(变量名)
    22 print(18,name.islower())#判断是不是一个小写
    23 print(19,name.isalnum())#判断是不是一个非浮点的数字
    24 print(20,name.isspace())#判断是不是一个空格
    25 print(21,'My Name Is'.istitle())#判断是不是一个驼峰型的标题
    26 print(22,name.isprintable())#判断是否可以打印,一般设备终端驱动程序里面有的tty、drive文件不可打印
    27 print(23,name.isupper())#是否大写
    28 print(24,','.join(['1','2','3','4']))#向字符串中间插入某个符号
    29 print(25,name.ljust(50,'*'))#50个字符,不够就在右侧用*补齐,对应的函数为center和rjust
    30 print(26,name.rjust(50,'*'))#50个字符,不够就在左侧用*补齐,对应的函数为center和ljust
    31 print(27,name.lower())#大写变小写
    32 print(28,name.upper())#小写写变大写
    33 print(29,'
    ------'.lstrip())#去除左边的空格回车
    34 print(30,'------
    '.rstrip())#去除右边的空格回车
    35 print(31,'
    ------
    '.strip())#去除两端的空格回车
    36 p = str.maketrans('abcdef','123456')#abcdef转成对应的值,类似加密的密码
    37 print(32,"negu".translate(p))
    38 print(33,"negunegi".replace('n','N',1))#字符串中n用N替换1个
    39 print(34,"negunegi".rfind('e'))#找到字符串中index最高的'e'
    40 print(35,'negu negi'.split())#将字符串按照分隔符分成一个列表的子项(分割符会被去除,默认为空格)
    41 print(36,'negu ne
    gi'.splitlines())#将字符串按照换行符分割成一个列表的子项,可以识别不同系统的换行符
    42 print(37,'Negunegi'.swapcase())#大小写互换
    43 print(38,'Negunegi'.title())#变成驼峰型字符串
    44 print(39,'Negunegi'.zfill(50))#左边用0填充,十六进制运算时候用到
    输入

    结果:

     1 1 My name is negu
     2 2 1
     3 3 my name is negu
     4 4 -----------------my name is negu------------------
     5 5 b'my name is negu'
     6 6 True
     7 7 my name is negu
     8 8 3
     9 9 n
    10 10 my name is negu and i am 22 old.
    11 11 my name is negu and i am 22 old.
    12 12 11
    13 13 True
    14 14 True
    15 15 True
    16 16 False
    17 17 False
    18 18 True
    19 19 False
    20 20 False
    21 21 True
    22 22 True
    23 23 False
    24 24 1,2,3,4
    25 25 my name is negu***********************************
    26 26 ***********************************my name is negu
    27 27 my name is negu
    28 28 MY NAME IS NEGU
    29 29 ------
    30 30 ------
    31 31 ------
    32 32 n5gu
    33 33 Negunegi
    34 34 5
    35 35 ['negu', 'negi']
    36 36 ['negu ne', 'gi']
    37 37 nEGUNEGI
    38 38 Negunegi
    39 39 000000000000000000000000000000000000000000Negunegi
    结果

    列表

    列表的创建、调用和切片

     names = "ZhangYang Guyun xiangPeng" 
    

    一般这种用变量存数据,想调用特定序位的字符串不好调用,所以要用列表储存。

     1 #author : negu
     2 # -*- coding: utf-8 -*-
     3 import copy
     4 names = ["zhangyang","Guyun","XiangPeng"] #列表的创建
     5 #序号(index)0          1       2      
     6 print(names)#结果为['zhangyang', 'Guyun', 'XiangPeng']
     7 print(names[0],names[2])结果为:zhangyang XiangPen
     8 print(names[1:2]) #结果为['Guyun'],此语法顾头不顾尾
     9 #这个语法叫作切片
    10 print(names[2])#结果为XiangPeng
    11 print(names[-1])#不清楚有多少个Str的情况下取最后一个
    12 print(names[-3:-1])#取后面两个值,且切片时候对数据的调取总是从左往右数,[更小值:更大值]其中0可以省略
    13 #结果为:['zhangyang', 'Guyun']
    14 print(names.append("LeiHaiDong"))#在names后面追加一个数据结果为:['zhangyang', 'Guyun', 'XiangPeng', 'LeiHaiDong']

    列表的中数据的删除和改变

    1 #插入的两种方式
    2 names.insert(1,"ChengRongHua")#想占哪个位置就填哪个位置的数字,无法批量插入
    3 names[2] = "XieDi"
    4 #删除的三种方式
    5 #names.remove("ChengRongHua")
    6 print(names.index("XieDi"))
    7 Del names[1]
    8 names.pop()#默认删最后一个,输入下标删位置

    列表的一些其它函数

     1 names = ["zhangyang","Guyun","XiangPeng"]
     2 print(names.index("zhangyang")) #取'zhangyang'的序号。结果为:0
     3 print(names.count("zhangyang"))#统计'zhangyang'的个数
     4 names.clear()#列表自我清除
     5 names = ["zhangyang","Guyun","XiangPeng"]
     6 names.reverse()#列表反转(1换到最后1位,2换到倒数第二位...)
     7 names.sort()#对列表进行首字母排序,优先级:特殊符号、数字、小写字母
     8 names2 = [1,2,3,4]
     9 names.extend(names2)#扩列
    10 print(names)#结果为['Guyun', 'XiangPeng', 'zhangyang', 1, 2, 3, 4]
    11 names = ["zhangyang","Guyun", ["alex","jack"] ,"XiangPeng"]#列表中可以包含子列表,子列表是一个独立的内存指针(内存地址)
    12 names2 = names.copy()
    13 names[2][0] = "ALEXANDER"
    14 names[1] = "顾云"
    15 print(names)#结果为:['zhangyang', '顾云', ['ALEXANDER', 'jack'], 'XiangPeng']
    16 print(names2)#结果为['zhangyang', 'Guyun', ['ALEXANDER', 'jack'], 'XiangPeng']
    17 子列表是一个独立的内存指针(内存地址)为,names2.copy copy子列表的地址而导致数据有差别(只copy第一层)。
    18 #解决方法deepcopy函数
    19 names2 = copy.deepcopy(names)
    20 names[2][0] = "ALEXANDER"
    21 names[1] = "顾云"
    22 print(names)#结果为:
    23 print(names2)#结果为:['zhangyang', '顾云', ['ALEXANDER', 'jack'], 'XiangPeng']
    24 ['zhangyang', 'Guyun', ['alex', 'jack'], 'XiangPeng']此时打印出来names2完全独立
    other code

    循环和列表的嵌套

    1 for i in names:
    2 print(i) #打印出names里面所有的str
    3 print(names[0::2]) #结果为['zhangyang', ['ALEXANDER', 'jack']]
    循环和列表

    字典

    字典的建立

    info = {
    'day1':"dictionary",
    'day2':"python",
    'day3':"linux",
    }
    

    key:value

    字典的修改

    1 info["day1"] = "字典"
    2 print(info['day1'])#结果为{'day3': 'linux', 'day4': 'hentai', 'day2': 'python', 'day1': '字典'},呈现无序状态。

    字典的删除

    1 del info["day4"]#删除key为day4的数据
    2 info.pop('day1'#删除key为day1的数据
    3 info.popitem()#随机删除

    字典的检索

    1 info = {
    2 'day1':"dictionary",
    3 'day2':"python",
    4 'day3':"linux",
    5 }
    6 info['day5'] #检索不存在的key会报错keyerror
    7 print(info.get('day2'))#正确的检索姿势,不会报错,会返回一个None
    8 print('day3' in info)#检索是否有key然后返回布尔值

    字典和列表的嵌套

     1 av_catalog = {
     2     "欧美":{
     3         "www.youporn.com": ["很多免费的,世界最大的","质量一般"],
     4         "www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],
     5         "letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],
     6         "x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]
     7     },
     8     "日韩":{
     9         "tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]
    10     },
    11     "大陆":{
    12         "1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]
    13     }
    14 }
    15 
    16     av_catalog["大陆"]["1024"][1] = "可以在国内做镜像"
    17     av_catalog["大陆"]["1024"][1] += ",可以用爬虫爬下来"
    18     print(6,av_catalog["大陆"]["1024"])
    19     #结果
    20     ['全部免费,真好,好人一生平安', '可以在国内做镜像,可以用爬虫爬下来']

    字典的其它函数

     1 info = {
     2 'day1':"dictionary",
     3 'day2':"python",
     4 'day3':"linux",
     5 }
     6 print(info.keys())#打印所有key值
     7 print(info.values())#打印所有value值
     8 info.setdefault('day5','linux')#插入一个新的数据,若key已经存在则不改数据
     9 b = {'day2':'literature',2:3,5:3}
    10 info.update(b) #合并字典,交叉key直接覆盖
    11 c = dict.fromkeys([1,2,3],'tested')#通过一个列表生成默认的dict,尽量只使用一层,不然会出事
    12 #例如 d = dict.fromkeys([1,2,3],[1,{'name':'alex'},123])
    13 d[2][1]['name'] = 'JACK MA'
    14 print(d)#结果为 {1: [1, {'name': 'JACK MA'}, 123], 2: [1, {'name': 'JACK MA'}, 123], 3: [1, {'name': 'JACK MA'}, 123]}
    15 for i in info:
    16 print(i) #无序打印所有key
    17 for i in info:
    18 print(i,info[i]) #打印所有的key和value
    19 for k,v in info.items(): #更低效,要转成列表
    20 print(k,v)
    字典的其它函数
  • 相关阅读:
    vs2005+Access开发网站管理系统日志2
    第三方控件安装方法
    elphi编写dll
    DELPHI IDE中部分操作快捷方式
    Delphi制作DLL
    delphi快捷键大全
    dll窗体的创建与调用
    delphi中dll综合运用的例子(动态加载插件)
    DELPHI中MessageBox的用法
    Office2010从第三页开始设置页码
  • 原文地址:https://www.cnblogs.com/negu/p/11221380.html
Copyright © 2011-2022 走看看