python - BinarySearch 修改
问题描述
嗨,我正在修改二进制搜索,以计算 url 中“/”的数量,并根据该数量创建一个分数基础,并为其创建一个 pi 图。但是,当我尝试遍历字符串时遇到错误。如果您还可以帮助我找到一种更简单的方法来对列表中的 url 进行排序,而不是对每个 url 进行手动排序,然后将其组合到一个列表中,那就太棒了。谢谢!
import numpy as np
url1 = "https://diversity.google"
url2 = "https://www.aboutamazon.com/workplace/diversity-inclusion"
url3 = "https://www.indeed.com/q-Diversity-jobs.html?vjk=ba073b4704d48c67"
url4 = "https://careers.linkedin.com/diversity-and-inclusion"
url5 = "https://github.com/about/diversity"
url6 = "https://www.apple.com/diversity/"
url7 ="https://www.samsung.com/us/about-us/diversity-and-inclusion/"
url8 = "https://diversity.fb.com"
url9 ="instagram:none"
url10 = "https://careers.twitter.com/en/diversity.html"
#for some reason doing this in a list doesnt work
url1 = sorted(url1)
url1 = "".join(url1)
url2 = sorted(url2)
url2 = "".join(url2)
url3 = sorted(url3)
url3 = "".join(url3)
url4 = sorted(url4)
url4 = "".join(url4)
url5 = sorted(url5)
url5 = "".join(url5)
url6 = sorted(url6)
url6 = "".join(url6)
url7 = sorted(url7)
url7 = "".join(url7)
url8 = sorted(url8)
url8 = "".join(url8)
url9 = sorted(url9)
url9 = "".join(url9)
url10 = sorted(url10)
url10 = "".join(url10)
data = np.array([url1,url2,url3,url4,url5,url6,url7,url8,url9,url10])
#for i in data:
#data[i] = sorted(data[i])
#data[i] = "".join(data[i])
def BinaryMod(data, low, high, x, counterArray):
mid = (high+low) / 2
for i in data:
for j in len(data[i]):
word = j
high = len(word) - 1
if word[mid] > x:
end = mid - 1
elif word[mid] < x:
low = mid+1
else:
counter = counter + 1
counterArray.append(counter)
return counterArray
counterArray = np.array([])
counterArray = BinaryMod(data, 0, 0, '/', counterArray)
IndexError Traceback (most recent call last)
<ipython-input-29-1293e7cb075f> in <module>()
1 counterArray = np.array([])
2
----> 3 counterArray = BinaryMod(data, 0, 0, '/', counterArray)
<ipython-input-28-4fe8d062745d> in BinaryMod(data, low, high, x, counterArray)
62 mid = (high+low) / 2
63 for i in data:
---> 64 for j in len(data[i]):
65 word = j
66 high = len(word) - 1
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
解决方案
import numpy as np
urls = [
"https://diversity.google",
"https://www.aboutamazon.com/workplace/diversity-inclusion",
"https://www.indeed.com/q-Diversity-jobs.html?vjk=ba073b4704d48c67",
"https://careers.linkedin.com/diversity-and-inclusion",
"https://github.com/about/diversity",
"https://www.apple.com/diversity/",
"https://www.samsung.com/us/about-us/diversity-and-inclusion/",
"https://diversity.fb.com",
"instagram:none",
"https://careers.twitter.com/en/diversity.html",
]
for url in urls:
print( url, 'contains', url.count('/'), 'slashes' )
输出:
https://diversity.google contains 2 slashes
https://www.aboutamazon.com/workplace/diversity-inclusion contains 4 slashes
https://www.indeed.com/q-Diversity-jobs.html?vjk=ba073b4704d48c67 contains 3 slashes
https://careers.linkedin.com/diversity-and-inclusion contains 3 slashes
https://github.com/about/diversity contains 4 slashes
https://www.apple.com/diversity/ contains 4 slashes
https://www.samsung.com/us/about-us/diversity-and-inclusion/ contains 6 slashes
https://diversity.fb.com contains 2 slashes
instagram:none contains 0 slashes
https://careers.twitter.com/en/diversity.html contains 4 slashes
推荐阅读
- c++ - 使用 enable_if 仅匹配具有特定静态数据成员且仅具有特定值的类
- php - 在 JSON 中获得两次输出
- php - 如何在 PHP 中创建设置选项
- javascript - 生产与开发中的 Django/React 应用程序 API?
- java - 禁止 HashSet 允许 JAVA 中的重复对象
- php - 无法使用日期函数获得结果
- python - 将值分配给 numpy 矩阵
- javascript - 在 php 中共享到 facebook 时如何在标题 facebook 帖子中显示名称
- c++ - 使用智能指针实现 AVL 树第 2 部分
- java - 嵌入式 Jetty 服务器中的 TLSv1 支持