如何拆分返回的整数:(尝试查找其中的重复项)

2024-10-03 17:16:18 发布

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

这可能是一个非常简单的问题,但它给了我很多麻烦。你知道吗

代码:

def search_likes(passed_list): #passed_list contains links to find below
    print("Found",len(passed_list),"videos, now finding likes.")
    x = 0
    print("Currently fidning likes for video",x,".")
    while x< len(passed_list): 
        likeFINDER = []
        r = requests.get(passed_list[0])
        soup= BeautifulSoup(r.content, 'lxml')
        d_data = soup.find_all("span", {"class": "yt-uix-button-content"}) #Location of the number i'm looking for
        likeFINDER.append(d_data)
        str1= ''.join(str(e) for e in likeFINDER) #Converts the list into a string
        likeNUMBER= (int(''.join(list(filter(lambda x: x.isdigit(), str1))))) #Removes string and leaves integers


        x+=1 #count

输出:

845528455314391440

我想在代码开始重复的地方拆分代码。Ie['84552','8455314391440']

如果你对如何做到这一点有任何见解,我将不胜感激!你知道吗

谢谢你, 本


Tags: the代码fordatalencontentfindlist
3条回答

给定一个包含数字的字符串s,以及一个数字n,即您要查找的重复大小,则可以执行以下操作:

s.find(s[:n], n)

这将查找字符串开头之后第一次出现的索引,该索引等于字符串的第一个n字符。例如:

s = str(845528455314391440)
n = 3
r = s.find(s[:n], n)
print(r)

输出:

5

然后可以使用它来拆分字符串并将部分转换为数字:

a, b = int(s[:r]), int(s[r:])
print(a, b)

输出:

84552 8455314391440

全部合并成一个函数,不重复说明数字:

def split_repeat(i, n):
    s = str(i)
    r = s.find(s[:n], n)
    if r == -1:
        return None
    else:
        return int(s[:r]), int(s[r:])

用法:

print(split_repeat(845528455314391440, 3))
print(split_repeat(876543210, 3))
print(split_repeat(1122, 3))

输出:

(84552, 8455314391440)
None
None

下面是一个简单的例子,它将向你展示如何匹配你需要匹配的前几个数字中的多少个。本例将使用前2位数字。你知道吗

我们可以将数字转换成字符串,然后使用string_name[:2],其中2是要匹配的前面的位数。我用数字11来匹配我的数字列表,但这只是一个例子。你知道吗

如果您有任何问题,请告诉我:

set_list = []
var1 = 11012314

for i in range(1000):
    set_list.append(i)

for item in set_list:
    x = str(item)
    y = str(var1)
    if x[:2] == y[:2]:

        print(item)

运行此代码时,您将看到打印到控制台的数字,这些数字将前两位数字与值为11的变量相匹配。你知道吗

你可以做:

def myfunc(num):
    a=str(num)
    for i in range(len(a)):
         l1=a[:i]
         l2=a[i:]
         if l1 in l2:
                 b=l1
    return [int(b), int(a[len(b):])]

这将给你:

>>> myfunc(845538455314391440)
[84553, 8455314391440]

相关问题 更多 >