Pythonで文字列のリストをフィルタリングする方法

別のリストリストを使用してフィルタ文字列

この例では、任意の方法を使用することなく、リスト内のデータ列をフィルタリングする方法を示しています。フィルタリストに使用される文字列の別のリストで。ここでは、名前のリスト1とリスト2を持つ2つの変数のリストを宣言します。リスト1のフィルタ値LIST2の値を使用します。スクリプトの各値リスト1値を持つ最初の単語はマッチをリスト2、およびそれらの値が存在しないList1を印刷します。

#coding=utf-8
# 声明两个列表变量
list1 = ['Python', 'PHP', 'Java',  'Bash']
list2 = ['JavaScript是客户端脚本语言',
        'PHP是服务器端脚本语言',
         'Java是一种编程语言',
        'Kotlin是一种静态编程语言']

# 根据第一个列表过滤第二个列表
filter_data = [x for x in list2 if
              all(y  not in x for y in list1)]

# 在过滤前和过滤后打印列表数据
print("第一个列表的内容:",  list1)
print("第二个列表的内容:", list2)
print("过滤后的第二个列表的内容:", filter_data)

スクリプトを実行します。ここでは、リスト1は、単語「Kotlin」が含まれていません。出力はLIST2に一つの値だけを含むことになる、すなわち、  [「Kotlinは、静的プログラミング言語です」]

Pythonで文字列のリストをフィルタリングする方法

次のように出力されます。

コンテンツの最初のリスト:[「Pythonの」、「PHP 」、「Javaの」、「バッシュ」]
第二のリストの内容:[「JavaScriptのクライアント側のスクリプト言語」「PHPは、サーバー側のスクリプト言語です」 「Javaはプログラミング言語である」]「Kotlinは、静的プログラミング言語である」
] [「Kotlinが静的プログラミング言語である」:濾過後の第二のリストの内容

カスタム関数のリストと文字列フィルタのリストの別の用途

文字列のリストをフィルタリング他のリストとカスタムフィルタ機能を使用するには、どのようにこの例は示しています。スクリプトはリスト1とリスト2という名前の変数の二つのリストが含まれています。カスタムフィルタ機能は、2つの変数の一般的な値のリストを検索します。

# 声明两个列表变量
list1 = ['100', '67', '39', '505', '122', '287', '399']
list2 =  ['70', '100', '308', '415', '362', '230']

# 声明一个函数来过滤第一个列表中的数据
def  Filter(list1, list2):
    return [n for n in list1 if
            any(m in  n for m in list2)]

# 在过滤器之前和之后打印列表数据
print("list1的的内容:",  list1)
print("list2的的内容:", list2)
print("过滤后的数据",Filter(list1, list2))

スクリプトを実行します。リスト内の2つの変数の値100が存在しています。スクリプトを実行した後、次の出力を生成します。

概要LIST1:[ '100'、 '67'、 '39'、 '505'、 '122'、 '287'、 '399']
の概要LIST2:[ '70'、 '100'、「308 ']'、 '415'、 '362'、 '230
フィルタリングされたデータ[' 100「]

Pythonで文字列のリストをフィルタリングする方法

文字列のリストをフィルタリングするために正規表現を使用します

リストをフィルタリングするために、すべての()および任意の()メソッドの最後の2つのサンプルを使用して。この例では、リストから正規表現を使用してデータをフィルタリング。正規表現パターンである、またはそのモード任意の一致するデータを検索することができます。Pythonはスクリプトで「再」アプリケーションモジュールで正規表現を使用しました。ここでは、対象コードは、リストを宣言します。正規表現は、フィルタのテーマコード「CSE」開始に使用されています。テキスト検索の先頭に「^」記号を使って正規表現パターン。


# 导入re模块以使用正则表达式
import re

# 声明列表包含科目编号
sublist = ['IDC-108',  'OKY-309', 'IDC-709', 'PHP-102', 'MIO-801']

# 声明过滤功能
def Filter(datalist):
    # 根据列表中的正则表达式搜索数据
    return [val  for val in datalist
        if re.search(r'^IDC', val)]

# 打印过滤器数据
print(Filter(sublist))

スクリプトを実行します。これは、「IDC」値で始まる変数の二つのサブリストで構成されます。スクリプトを実行した後、次の出力。

[ 'IDC-108'、 'IDC-709']

Pythonで文字列のリストをフィルタリングする方法

ラムダ式フィルタに文字列のリストを使用します

この例では、文字列ラムダ式フィルタリストからのデータの使用を示します。ここでは、リスト変数は、という名前の変数のテキストからテキストの内容をフィルタリングするためsearch_wordと呼ばれます。命名text_wordのリストに空間変換のテキストに基づいて、分割()メソッドを使用することにより。ラムダ式は、これらの値がIN search_wordに存在text_word無視し、濾過し、変数の値を格納することによって、スペースを追加します。

# 声明一个包含linuxidc_word中关键词的列表
linuxidc_word = ["系统", "linuxidc", "Python",  "Kotlin"]

# 定义文本,从列表中搜索单词
text = "Linux公社 linuxidc 是专业的 Linux 系统 门户网站,实时发布 最新 Kotlin  资讯!"

# 根据空格分割文本并将单词存储在列表中
text_word = text.split()

# 使用lambda表达式过滤数据
filter_text = ' '.join((filter(lambda val: val not in  linuxidc_word, text_word)))

# 在过滤前和过滤后打印文本
print("\n过滤前的文本:\n", text)
print("过滤后的文本:\n",  filter_text)

スクリプトを実行します。スクリプトを実行した後、次の出力。

Pythonで文字列のリストをフィルタリングする方法

使用フィルタ()文字列のリストをフィルタリングする方法

フィルタ()メソッドは、2つのパラメータを取ります。最初のパラメータは、関数名または「なし」、値リストとして変数名を使用して、第2のパラメータを取ります。フィルタ()戻り値がtrueの場合、データは、それ以外の場合はデータを破棄し、リストから保存されています。ここでは、最初のパラメータ値は、任意の値を指定していません。すべてが偽の値がフィルタリングされたデータのリストから取得されていません。

#声明混合数据列表
listData = ['linuxidc', 90, 9, 'com', 100, False, 22, True,  '1']

# 使用None和列表调用filter()方法
filteredData = filter(None,  listData)

#过滤数据后打印列表
print('过滤后的列表:')
for val in  filteredData:
    print(val)

スクリプトを実行します。リストには、偽の値のみが含まれ、偽の値がフィルタリングされたデータに省略されています。次の出力が表示されますが、スクリプトを実行します。

Pythonで文字列のリストをフィルタリングする方法

要約:

あなたが検索して、リストから特定の値を取得する必要がある場合、フィルタは非常に便利です。私は、上記の例は、読者が文字列のリストからデータをフィルタリングする方法を理解するのに役立つことを願っています。

おすすめ

転載: www.linuxidc.com/Linux/2020-03/162681.htm