listTest =['Hello', 'World', '!', 1, 2, 4, 3, 5, 6, 7]删除列表中的字符串并将数字放大两倍:
时间: 2024-01-15 17:03:24 浏览: 73
可以使用列表推导式来实现:
```python
listTest = ['Hello', 'World', '!', 1, 2, 4, 3, 5, 6, 7]
listTest = [i*2 for i in listTest if type(i) == int]
print(listTest)
```
输出:
```
[2, 4, 8, 6, 10, 12, 14]
```
说明:上面的代码先使用列表推导式遍历列表,将列表中的整数元素乘以2,然后将结果存储回列表中,最后输出修改后的列表。注意,在列表推导式中使用了一个判断条件,即只对类型为int的元素进行操作。这样就可以实现删除列表中的字符串并将数字放大两倍的功能了。
相关问题
将这段代码改一下只将爬取的前十张图片存入到python picture文件夹中import requests head={ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" } re=requests.get(url="https://www.iqiyi.com/?vfm=f_208_dbq&fv=88cd0334c6d6e1bf") print(type(re)) html=re.text print(html) from bs4 import BeautifulSoup soup=BeautifulSoup(html,'lxml') listtest1=soup.find_all("picture",attrs={"class":"video-item-preview-img"}) print(listtest1) print(len(listtest1)) print(listtest1[0]["id"]) for p in listtest1: print(p["id"]) re=requests.get("http:"+p["id"]) with open(p["id"].split('/')[-1]+'.jpg','wb') as f: f.write(re.content)
以下是修改后的代码,只将爬取的前十张图片存入到Python picture文件夹中:
```python
import requests
import os
from bs4 import BeautifulSoup
head = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"
}
re = requests.get(url="https://www.iqiyi.com/?vfm=f_208_dbq&fv=88cd0334c6d6e1bf")
html = re.text
soup = BeautifulSoup(html, 'lxml')
listtest1 = soup.find_all("picture", attrs={"class": "video-item-preview-img"})
if not os.path.exists("picture"):
os.makedirs("picture")
count = 0
for p in listtest1:
if count >= 10:
break
print(p["id"])
re = requests.get("http:" + p["id"])
with open(os.path.join("picture", p["id"].split('/')[-1] + '.jpg'), 'wb') as f:
f.write(re.content)
count += 1
```
在上述代码中,首先添加了一个判断语句,判断是否存在名为 "picture" 的文件夹,如果没有则创建一个。然后通过一个计数器 count 来控制只下载前十张图片。同时在保存图片时,使用了 `os.path.join()` 函数,将文件路径拼接成一个完整的路径,避免了操作系统差异导致的路径错误问题。
二、给定以下代码,请定义方法listTest()统计集合中指定元素出现的次数,如"a": 2,"b": 2,"c" :1, "xxx":0。 Collection<String> list = new ArrayList<>(); list.add("a"); list.add("a"); list.add("b"); list.add("b"); list.add("c"); System.out.println("a:"+listTest(list, "a")); System.out.println("b:"+listTest(list, "b")); System.out.println("c:"+listTest(list, "c")); System.out.println("xxx:"+listTest(list, "xxx"));
以下是实现方法listTest()的代码:
```
public static int listTest(Collection<String> list, String element) {
int count = 0;
for (String str : list) {
if (str.equals(element)) {
count++;
}
}
return count;
}
```
在这个方法中,我们使用了一个计数器count,遍历集合中的每个元素,如果该元素与指定元素相同,就将计数器加1。最后返回计数器的值,即该指定元素在集合中出现的次数。
你可以将以上代码放在一个类中,然后运行main方法,输出结果如下:
```
a:2
b:2
c:1
xxx:0
```
阅读全文