检查数组是否包含numpy中的特定字符串

2024-10-01 09:26:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将大学的网址存储在一个数组中,检查元素的结尾是否包含“.ec”。如果是这样的话,就去掉“www.”和“.edu”

到目前为止,这是我的尝试:

import numpy as np


def localuniversities():
    sites = input("Enter sites separated by a comma and space: ").lower().split(", ")
    arraysites = np.asarray(sites)
    print(arraysites)
    matching = [s for s in arraysites if ".ec" in s]
    arraysites1 = [url.rstrip(".edu.ec") for url in matching]
    arraysites2 = [url.strip("www.").upper() for url in arraysites1]
    unique = np.unique(arraysites2, axis=0)
    print(unique)


print(localuniversities())

编辑:设法修复了验证。在

我仍然有一个问题,如果我进入一个网站,而这个词以“d”结尾,比如www.harvard.edu,它也会去掉“d”。在

任何帮助都将不胜感激。在


Tags: inurlforwww结尾npsitesunique
1条回答
网友
1楼 · 发布于 2024-10-01 09:26:52

First one is that if I enter a site, say "www.harvard.edu", it will strip the D off it so it comes out as "HARVAR".

之所以发生这种情况,是因为rstrip函数从字符串的末尾获取要剥离的字符集合,而不是要从字符串末尾剥离的整个单词(如果存在的话)。(字符串是字符的集合)。对于strip函数也是如此。这就是为什么D被删除的原因。在

Second is that its not verifying as far as I can tell.

正如@Jeff_h所说,这是因为您只定义了一次check变量,这将导致for循环返回strip和{}所有站点,或者不是。在

在解决了所有的问题之后,这是我得到的

def localuniversities():
    sites = input("Enter sites separated by a comma and space: ").lower().split(", ")
    temp = []
    for site in sites:
        if site.endswith(".ec"):
            temp.append(site[site.find("www") + len("www") + 1:site.rfind(".edu.ec")])
    return temp


print(localuniversities())

我希望这对你有帮助

相关问题 更多 >