python的字符串、列表、字典和函数

一、字符串

  • 在python中字符串无需通过像php中的explode或者javascript中的split进行分解即可完成切片,可以直接通过下标获取字符串中的每一个字符,下标从0开始,如果从厚望签署,下标从-1开始
str = 'abcde'
print(str[0])	#结果为:a
print(str[2])	#结果为:c
  • 可以通过len()函数获取字符串的长度

  • 切片:str[起始位置:结束位置:步长]

  • 如果想要取字符串中的几个字符(切片),可以通过在方括号内添加冒号实线,冒号前为开始的小标,冒号后为结束的下标,截取的是冒号前开始到冒号后之间的字符,去尾不掐头

str = 'abcde'
print(str[1:3])		#结果为:bc
print(str[2:3])		#结果为:c
print(str[1:0])		#结果为:bcde  冒号后为零,视为取到最后一个
  • 加上第二个冒号后,第二个冒号后的数字相当于步长,即下标加几
str = 'abcdeABCDE'
print(str[1:8:2])		#结果为:bdAC
print(str[-1:0:-1])		#结果为:EDCBAedcb
print(str[-1::-1])		#结果为:EDCBAedcba
print(str[::-1])		#结果为:EDCBAedcba
print(str[::1])			#结果为:abcedABCED
  • 字符串常见操作:
    • find():从左向右查找字符串在目标字符串中第一次出现的位置,找不到返回-1。

      str = 'hello world!'
      print(str.find('o'))	#结果为:4
      
      • rfind():与find相反,从右向左找。

      • index():作用与find相同的,不同的是,如果找不到index会抛出一个异常。

      • rindex():同理。

      • count():返回查找字符串在目标字符串中出现的次数,不存在返回0。

      • replace('目标字符串', '要替换的字符串', 替换几次)

      • split():同javascript里的split函数,如果括号内什么都不写,默认以空格为目标切割(很好用)

      • join():作用同javascript里的join函数,但形式不同。

      a = ['aaa', 'bbb', 'ccc']
      b = '#'
      print(b.join(a))			#结果为:aaa#bbb#ccc
      
      • capitalize():把字符串第一个字符大写

      • title():把字符串的每个单词的首字母大写

      • startswith():检查字符串是否以目标字符串开头

      • endswith():与startswith相反

      • lower():把字符串中所有大写字符小写

      • upper():与lower相反

      • ljust()、rjust()、center():在括号内填写的数字长度内,靠左、靠右、居中。

      • lstrip()、rstrip()、strip():同javascript里的trim

      • partition():用字符串把目标字符串以该字符串为中心,分为左中右三部分,返回一个元祖。

        str = 'hello world'
        print(str.partition('o'))	#结果为:('hell', 'o', ' world')
        
      • rpartition():作用同partition,从右向左取第一个。

      • splitliness():按换行符进行分割。

      • isalpha():判断目标字符串是不是字母。

      • isdigit():判断目标是不是数字。

      • isalnum():判断目标是不是既有字母又有数字。

      • isspace():判断目标是不是空格

二、列表

  • 形式:
names = ['张三', '李四', '王五']
  • 列表的增加:

    • append("要添加的内容")
    • insert("位置", "要添加的内容")
  • 合并列表:

    • 直接用+号进行合并

    • 用extend()函数

    names1 = ['张三', '李四', "王五"]
    names2 = ['赵六', '吴七']
    names3 = names1 + names2
    print(names3)					#结果为:['张三', '李四', '王五', '赵六', '吴七']
    names1.extend(names2)
    print(names1)					#结果为:['张三', '李四', '王五', '赵六', '吴七']
    
  • 列表的删除:

    • pop():弹出列表中的最后一个
    • remove("内容"):删除列表中第一个目标内容
    • del 列表名[下标]
  • 列表的查找:

    • "要查找的内容" in 列表名
    • "要查找的内容" not in 列表名
  • 列表的遍历:

for temp in 列表名:
    print(temp)
else:
    print('end')	# for循环加上else,即为在for循环执行完成后,执行else部分
  • 列表的排序:
    • list.sort():将列表的值按升序排序。
    • list.sort(reverse=True):将列表的值按降序排序。
    • list.reverse():将列表逆序。

三、字典

  • 形式:dic = {键:值, 键:值…},相当于PHP中的关联式数组,表现形式上与json对象相当
  • 字典的删除 del 字典名['键名']
  • 用get获取字典里的数据,当对应内容不存在时,不会报错:字典名.get('键名')
  • 字典的函数:
    • len(dic名):获取字典的键值对个数。
    • dic.keys():返回字典中所有的键。
    • dic.values():返回字典中所有的值。
    • dic.items():将字典转化为元祖。
  • 字典的排序:
    • dic.sort(key=lambda x:x['键名']):升序排列

四、元祖

  • (11,22,33)功能与列表相同,不同之处在于元祖在定义后无法修改。

五、函数

  • 不定长函数(元祖):
def example(a, b, *args):
    print(a)
    print(b)
    print(args)

example(1, 2, 3, 4, 5, 6, 7, 8)    #结果为:1 2 (3, 4, 5, 6, 7)
  • 不定长参数(字典):
def test(a, b, c = 33, *args, **kwargs):
    print(a)
    print(b)
    print(c)
    print(args)
    print(kwargs)

test(11, 22, 33, task = 99, done = 89)    #结果为:11 22 33 () {'task': 99, 'done': 89}
  • 函数的参数
    带默认值的参数被称为关键字参数,没有默认值的参数被称为位置参数,在定义函数的时候,位置参数不能放在关键字参数之后
posted @ 2017-12-16 17:22  Leur  阅读(479)  评论(0)    收藏  举报