python特性语法(字符串,列表,数组,元祖,字典,冒号)

出处:https://blog.csdn.net/newchenxf/article/details/79502353

1. 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号(‘或”)来创建字符串。 
创建字符串很简单,只要为变量分配一个值即可。例如:

var1 = 'Hello World!'
var2 = "Python Runoob"
  • 1
  • 2

Python不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。 
Python访问子字符串,可以使用方括号来截取字符串,如下实例:

#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Runoob"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

以上实例执行结果:

var1[0]:  H
var2[1:5]:  ytho
  • 1
  • 2

2. 列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 
Python有6个序列的内置类型,但最常见的是列表和元组。 
序列都可以进行的操作包括索引,切片,加,乘,检查成员。 
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。 
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。 
列表的数据项不需要具有相同的类型。 
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
  • 1
  • 2
  • 3

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

2.1 列表截取

列表截取

>>>L = ['Google', 'Runoob', 'Taobao']
#读取列表中第三个元素
>>> L[2]
'Taobao' 

#读取列表中倒数第二个元素
>>> L[-2]
'Runoob'

#从第二个元素开始截取列表
>>> L[1:]
['Runoob', 'Taobao']
>>>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

3. 元祖

Python的元组与列表类似,不同之处在于元组的元素不能修改。 
元组使用小括号,列表使用方括号。 
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。 
如下实例: 
tup1 = (‘physics’, ‘chemistry’, 1997, 2000); 
tup2 = (1, 2, 3, 4, 5 ); 
tup3 = “a”, “b”, “c”, “d”; 
创建空元组 
tup1 = (); 
元组中只包含一个元素时,需要在元素后面添加逗号 
tup1 = (50,); 
元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

4. 字典(Dictionary)

字典是另一种可变容器模型,且可存储任意类型对象。 
字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }
  • 1

键必须是唯一的,但值则不必。 
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 
一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
  • 1

也可如此创建字典:

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
  • 1
  • 2

访问字典里的值 
把相应的键放入熟悉的方括弧,如下实例: 
实例

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

以上实例输出结果:

dict['Name']:  Zara
dict['Age']:  7
  • 1
  • 2

5. 关于冒号

5.1 双冒号

Python sequence slice addresses can be written as a [start:end:step] and any of start, stop or end can be dropped. 
Python序列切片地址可以写为[开始:结束:步长],其中的开始和结束可以省略。

举例:


>>>range(10)[:10:2] 
# 开始start省略时,默认从第0项开始
[0,2,4,6,8]

#结尾end省略的时候,默认到数组最后。
>>>range(10)[1::2] 
[1,3,5,7,9]

#step省略默认为1 
range(10)[0:1:] 
[0,1]

#当step等于负数的时候,从右向左取数。
>>>range(5)[::-1] 
[4,3,2,1,0]
>>>range(10)[::-2] 
[9,7,5,3,1]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

5.2 单冒号

a[start:end]:取得范围为[start,end)

a=[[1,2,3],[4,5,6],[7,8,9]] 
b=a[1:2] 
[[4, 5, 6]]
  • 1
  • 2
  • 3

a[:end]:取得范围为[0,end)

a=[[1,2,3],[4,5,6],[7,8,9]] 
b=a[:1] 
[[1, 2, 3]]
  • 1
  • 2
  • 3

a[start:]:取得范围为从start到最后(包括最后)

a=[[1,2,3],[4,5,6],[7,8,9]] 
b=a[1:] 
[[4, 5, 6], [7, 8, 9]]
  • 1
  • 2
  • 3

6. 数组

数组几乎跟列表差不多,但数组不是python的数据类型,列表是。数组的类型必须全部相同,list不用。数组主要在numpy中封装的array使用,很强大。array的创建:参数既可以是list,也可以是元组

list = [[1,2,3],[4,5,6]]
b=np.array(list)#列表转数组
print(b)
print(b.shape)#打印数组shape,结果是(2, 3)
newlist = b.tolist()#数组转列表
print(newlist)

yuanzu = (1, 2, 3)
c=np.array(yuanzu)#元祖转为列表
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

数组除了用array函数创建,numpy还有很多函数,可以方便创建数组。如 
np.arange(a,b,c) 表示产生从a-b不包括b,间隔为c的一个array

数组没有逗号隔开!!列表有。请看打印 
数组:

[[1 2 3]
 [4 5 6]]
  • 1
  • 2

列表:

[[1, 2, 3], [4, 5, 6]]
  • 1

6.1 关于shape

shape是维度的意思。

import numpy as np
x = np.array([1, 2])
y = np.array([[1],[2]])
print(x.shape) #x[1,2]的shape值(2,),意思是一维数组,数组中有2个元素
print(y.shape) # y[[1],[2]]的shape值是(2,1),意思是一个二维数组,每个数组中有1个元素
>>>
(2,) 
(2, 1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

6.2 冒号在数组中的含义

z直接看代码跟结果吧。

# Python
import numpy as np
#冒号在二维数组中的使用
a = np.arange(25).reshape(5,5)#二维数组
print(a)
print('\na[:,0:2] = ')#第一维(行)全部取,第二维(列)取0~2(不包括2)
b = a[:,0:2]
print(b)

print('\na[:,1] = ')#第一维(行)全部取,第二维(列)取第1列,只写一个数字,会降维
c = a[:,1]
print(c)

print('\na[1] = ')#逗号都不写,认为第一维(行)取1,第二维(列)取所有
d = a[1]
print(d)

k = a[1:-2,1:-1]  #第一行~倒数两行,第一列~倒数一列,其实就是a[1:3,1:4]
print('\na[1:-2,1:-1] = ')
print(k)


#三维数组
print('\n\n----------------\n\n')
a = np.arange(48).reshape(4,4,3)#三维的
print('a=')
print(a)

f = a[:,:,0]          #第三维写数字,会降低为二维
print('\na[:,:,0] = ')
print(f)

g = a[:,:,1]
print('\na[:,:,1] = ')
print(g)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

打印结果: 
这里写图片描述

7. 矩阵

matrix是array的一个特例,它只能是二维,而array可以是多维的。

list2 = [[1,2,3],[4,5,6]]#二维
list3 = [[[1,2,3],[4,5,6]], [[1,2,3],[4,5,6]]]#三维
mat2 = np.mat(list2)#转为矩阵
print(mat2)

mat3 = np.mat(list3)#会出现错误(ValueError("matrix must be 2-dimensional")),三维列表,无法转,矩阵只能二维
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

参考文献

python菜鸟教程

猜你喜欢

转载自blog.csdn.net/zzx3163967592/article/details/80810964