python 列表中保留全部字符串前三項,並保存到一個新的列表
l = [s[:3] for s in data]
python 在列表中查找包含因此某個字符串的項,並保存到一個新的列表
l = [s for s in data if 'FF' in s]
# 兩個list的差集,並集和交集
http://www.javashuo.com/article/p-mjuyalci-nb.html
方法一:
list1 = ['a','b','c'] list3 = list1 list2 = ['a'] for i in list2: list3.remove(i) list3 Out[7]: ['b', 'c']
方法二:
list3 = list(set(list1) - set(list2))
#列表相除、列表相加
import numpy as np a=[1,2] #一、獲得列表 <class 'list'>
b=[i/2 for i in a];print(b) #二、獲得<class 'numpy.ndarray'>
b=np.array(a)/2;print(b) #多個列表加減,用numpy
c=np.array(a)+np.array(b)*2
print(c)
#不一樣長度數據放到一塊兒,用numpy和pandas都不太好處理
#用list則比較好處理
a=[]
a.append([1,2])
a.append([2,3,4,5,5])
pd.DataFrame(a)
#判斷元素個數
#發現pandas和numpy都很差處理
[1,2,3,1,2,'a','b','a'].count('a') 獲得'a'出現個數
#求兩個list差集、交集和並集 http://www.jb51.net/article/56980.htm
a = [1,2,3]; b = [2,3,4] #想要的結果是[1] [4] [2,3] [1,2,3,4]
aa=[i for i in a if i not in b] #[1]
bb=[i for i in b if i not in a] #[4]
cc=[i for i in a if i in b] #[2,3]
a.extend(b); a[-1:-1]=b; a[0:0]=b; a[1:1]=b #能夠插到不一樣位置,再去重python
#簡單的list去重編程
a=[1,2,3,2,4,3,1]app
a=list(set(a)) #set(a):{1,2,3,4} a:[1,2,3,4]#python list遍歷時同時跟蹤正在被處理的元素索引編程語言
my_list=['a','b','c']
for idx,val in enumerate(my_list):
print(idx,val)
#能夠再結合Series.index[idx]獲得索引名稱,用loc[Series.index[idx],columns_name]選取指定位置值
#替換 replace
‘abcd'.replace('a','x') #將‘a'替換爲‘x’ 結果'xbcd'
#合併拼接字符串
parts=['is','chicago','not','chicago?']
' '.join(parts)
',',join(parts)
''.join(parts)
#字符串截取
string.split('key') #string在key地方截爲兩段
#用index()方法在列表中查找值
spam=['hello','hi','howdy','heyas']
spam.index('hello') #0
#append() insert() remove() 是列表方法
#注意獲得新的list就是append和insert後的,不用賦值
#列表被當場修改
spam.append('moose')
spam.insert(1,'chicken')
spam.remove('hello') #若是該值出現屢次,只有第一次出現值會被刪除
#sort() 將列表中的值排序
sort()方法當場對列表排序 不能對既有數字又有字符串值的列表排序
sort()方法對字符串排序時, 使用「ASCII 字符順序」, 而不是實際的字
典順序。這意味着大寫字母排在小寫字母以前。所以在排序時, 小寫的 a 在大寫的
Z 以後。 若是須要按照普通的字典順序來排序, 就在 sort()方法調用時, 將關鍵字參數
key 設置爲 str.lower。
spam.sort(reverse=True)
spam=['a','z','A','Z']
spam.sort(key=str.lower) #['a', 'A', 'z', 'Z']
#若是元組中只有一個值, 你能夠在括號內該值的後面跟上一個逗號, 代表這種
狀況。 不然, Python 將認爲, 你只是在一個普通括號內輸入了一個值。逗號告訴
Python, 這是一個元組(不像其餘編程語言, Python 接受列表或元組中最後表項後
面跟的逗號)。在交互式環境中, 輸入如下的 type()函數調用, 看看它們的區別:
>>> type(('hello',))
<class 'tuple'>
>>> type(('hello'))
<class 'str'>
#用 list()和 tuple()函數來轉換類型
變量包含對列表值的引用, 而不是列表值自己。但對於字符串和整數值, 變量
就包含了字符串或整數值。在變量必須保存可變數據類型的值時, 例如列表或字典,
Python 就使用引用。對於不可變的數據類型的值, 例如字符串、 整型或元組, Python
變量就保存值自己。
>>> spam = 42
>>> cheese = spam
>>> spam = 100
>>> spam
100
>>> cheese
42 >>> spam = [0, 1, 2, 3, 4, 5]
>>> cheese = spam
>>> cheese[1] = 'Hello!'
>>> spam
[0, 'Hello!', 2, 3, 4, 5]
>>> cheese
[0, 'Hello!', 2, 3, 4, 5]
Python 提供了名爲 copy 的模塊, 其中包含 copy()和 deepcopy()函數
若是要複製的列表中包含了列表, 那就使用 copy.deepcopy()函數來代替。
>>> import copy
>>> spam = ['A', 'B', 'C', 'D']
>>> cheese = copy.copy(spam)
>>> cheese[1] = 42
>>> spam
['A', 'B', 'C', 'D']
>>> cheese
['A', 42, 'C', 'D']
#元組不可修改是元組中的元素不可修改,元組變量能夠賦值修改
temp=('a','b','c','d')
temp=temp[:2]+('e',)+temp[2:] #('a','b','e','c','d')
轉義字符 打印爲
\' 單引號
\" 雙引號
\t 製表符
\n 換行符
\\ 倒斜槓函數
upper()全大寫、lower()全小寫、isupper() islower() 若是字符串至少有一個字母, 而且全部字母都是大寫或小寫, isupper()和islower()方法就會相應地返回布爾值 True。不然, 該方法返回 False。spa
除了 islower()和 isupper(), 還有幾個字符串方法,它們的名字以 is 開始。這些
方法返回一個布爾值, 描述了字符串的特色。下面是一些經常使用的 isX 字符串方法:
isalpha()返回 True, 若是字符串只包含字母, 而且非空;
isalnum()返回 True,若是字符串只包含字母和數字,而且非空;
isdecimal()返回 True,若是字符串只包含數字字符,而且非空;
isspace()返回 True,若是字符串只包含空格、製表符和換行,而且非空;
istitle()返回 True,若是字符串僅包含以大寫字母開頭、後面都是小寫字母的單詞。.net
請注意, 這些方法沒有改變字符串自己, 而是返回一個新字符串。若是你但願改
變原來的字符串, 就必須在該字符串上調用 upper()或 lower(), 而後將這個新字符串
賦給保存原來字符串的變量。這就是爲何必須使用 spam = spam.upper(), 才能改變
spam 中的字符串, 而不是僅僅使用 spam.upper()code
若是隻須要檢查字符串的開始或結束部分是否等於另外一個字符串, 而不是整個字符串, 這些方法就能夠替代等於操做符==,這頗有用。htm
若是有一個字符串列表, 須要將它們鏈接起來,成爲一個單獨的字符串, join()方法就頗有用。 join()方法在一個字符串上調用, 參數是一個字符串列表, 返回一個
字符串。返回的字符串由傳入的列表中每一個字符串鏈接而成。
split()方法作的事情正好相反:它針對一個字符串調用, 返回一個字符串列表。
', '.join(['cats', 'rats', 'bats'])
'cats, rats, bats'
'My name is Simon'.split()
['My', 'name', 'is', 'Simon']blog
一個常見的 split()用法, 是按照換行符分割多行字符串。在交互式環境中輸入
如下代碼:
>>> spam = '''Dear Alice,
How have you been? I am fine.
There is a container in the fridge
that is labeled "Milk Experiment".
Please do not drink it.
Sincerely,
Bob'''
>>> spam.split('\n')
['Dear Alice,', 'How have you been? I am fine.', 'There is a container in the
fridge', 'that is labeled "Milk Experiment".', '', 'Please do not drink it.',
'Sincerely,', 'Bob']
>>> 'Hello'.rjust(10)
' Hello'
>>> 'Hello'.rjust(20)
' Hello'
>>> 'Hello World'.rjust(20)
' Hello World'
>>> 'Hello'.center(20, '=')
'=======Hello========’
>>> spam = ' Hello World '>>> spam.strip()'Hello World'>>> spam.lstrip()'Hello World '>>> spam.rstrip()' Hello World'