From ae390a0ea3e1fc83cbe6c7ee216ea2cf3cc0d438 Mon Sep 17 00:00:00 2001 From: yky Date: Mon, 19 May 2025 12:01:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20py=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- py过滤 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 py过滤 diff --git a/py过滤 b/py过滤 new file mode 100644 index 0000000..5fbd4ac --- /dev/null +++ b/py过滤 @@ -0,0 +1,20 @@ +#题目:怎么用推导式将下面这个列表中的元素遍历出来,只留下字母数字空格和花括号,并输出一个完整的字符串呢? +# [["RℯℱE", "DR✍O", "CK{❦"], ["I a", "m le♫a", "rn†‡in"], ["g Py✣✤✥t", "ho⇒⇓⇔⇕na", "t SR々E}"]] +#思路:先使用循环遍历出子列表、字符串、字符;使用isspace()、isalnum()判断是否为空格、数字或字符,最后输出result。注意:遍历每个字符过滤,而非字符串 +# 一步完成:展平嵌套结构 + 过滤特殊字符 + 拼接字符串 + +lst = [["RℯℱE", "DR✍O", "CK{❦"], ["I a", "m le♫a", "rn†‡in"], ["g Py✣✤✥t", "ho⇒⇓⇔⇕na", "t SR々E}"]] + + +#join()是一个字符串方法,用于将可迭代对象中的元素连接为一个字符串 +#' '.join() 以空格来连接 + +result = ''.join( + char for sublist in lst #生成器表达方式,遍历外层列表,char是接收最后用于输出的字符 + for s in sublist # 遍历每个子列表中的字符串 + for char in s # 遍历字符串的每个字符 + if char.isalnum() or char.isspace() or char in '{}' +) +print(result) + +