我试图写一个for循环来从特定的索引范围迭代.
因此,如果我有一个data[]长度为10 的数组,并且我只想从第3个位置(索引2)到第9个位置(索引8)进行迭代,那么我该如何编写该循环结构呢?
示例代码如下:
//Trying to iterate from index 2 - 9
for(int i=0; i<data.length && i>2 && i<9; i++)
{
System.out.println(data[i]);
}
Run Code Online (Sandbox Code Playgroud)
提前致谢
有什么我想念的吗?
我想要创建的基本上是由空格(或您想要的任何类型)分隔的索引表.我意识到仅仅在int类型数据列上不可能进行全文搜索,因为它将"空格"理解为要在整个目录中编制索引的分隔数据的分隔符.
我确实意识到它确实允许我索引varbinary类型数据,但为什么不仅仅是int用空格分隔的数据,而不是包括要搜索的整数AND文本数据.IE,a
SEARCH * FROM MyTable
WHERE CONTAINS(indexedcolumn, '1189')
Run Code Online (Sandbox Code Playgroud)
使用为表格定义的全文索引/目录,如下所示:
indexedColumn secondDelimitedIntColumn
1189 34 34209 1989 3 5
Run Code Online (Sandbox Code Playgroud)
是不可能的,但是
SEARCH * FROM MyTable
WHERE CONTAINS(uniqueColumn, 'a1189')
Run Code Online (Sandbox Code Playgroud)
WOULD使用包含以下列的表格上的全文索引:
uniqueColumn secondDelimitedIntColumn
a1189 b34 b34209 b1989 b3 b5
Run Code Online (Sandbox Code Playgroud)
所以基本上CONTAINS()在任何具有全文索引的列上执行搜索只有在整数字符串附加了一些文本时才会起作用.
但我的问题是"为什么我不能只使用由空格分隔的整数字符串,这为我节省了必须添加虚拟文本的步骤,以便让SQL Server允许我对索引的整数字符串执行全文搜索?"
提前致谢!
这怎么可能?
list = [0, 0, 0, 0]
for i in list:
print list.index(i),
list[ list.index(i) ] += 1
Run Code Online (Sandbox Code Playgroud)
这打印:0 1 2 3(这是可以理解的)
list = [1, 4, 5, 2]
for i in list:
print list.index(i),
list[ list.index(i) ] += 1
Run Code Online (Sandbox Code Playgroud)
打印:0 1 1 0
这是一个多部分索引问题:
大家好,我最近跨过一个我从未见过并且不明白的列表的索引. List[List[index]]
例
L = [1,2,3,4,5]
in: L[0]
out: 1
in: L[L[0]]
out: 2
Run Code Online (Sandbox Code Playgroud)
这是为什么?为什么使用L删除第一个元素?
我理解L是否会将列表作为元素但在这种情况下?
谢谢大家对新手的支持:)
我有以下列表和变量 i:
probs = [1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9, 1/9]
i = 3
Run Code Online (Sandbox Code Playgroud)
我想将变量 i 中给出的索引的列表中的值更改为 3/9,并将其余值更改为 8/9。因此,上述条件的预期结果将是:
probs = [8/9, 8/9, 8/9, 3/9, 8/9, 8/9, 8/9, 8/9, 8/9]
Run Code Online (Sandbox Code Playgroud)
我更喜欢用列表理解来提高效率,有什么想法吗?
我有一个大清单,像这样:
['a', 'b', 'c', 'd', 'e', 'f', 'g', ...]
Run Code Online (Sandbox Code Playgroud)
我想用字典来跟踪它的索引.dict看起来像这样:
{1:'a', 2:'b', 3:'c', 4:'d', 5:'e', 6:'f', 7:'g', ...}
Run Code Online (Sandbox Code Playgroud)
但后来我需要插入新元素.我希望插入点后列表元素的索引在插入时自动增加1.有快速或传统的方法吗?我通常使用python,但其他形式的算法就好了.
更新:请不要无缘无故地投票.我认为即使省略了一些上下文(为简单起见),问题本身也相当清楚.我认为可以提供答案,而不必知道为什么我需要这样做.
您的字符串长度应该比您希望它能够容纳的最大字符数多一。足够合乎逻辑:字符串以NULL字符结尾。
这是大多数新手都会得到的非常笼统的建议。但是,随着我在编程方面的成长,现在似乎不太正确。
任何类型数组的索引,无论是int还是char,都从0. 因此,大多数数组的最大索引值比其数值小 1。它与字符串相同,但由于它在末尾有一个额外的字符,因此它会增加 1。因此,字符串长度与其中的字符数相同。
要查看我是否正确,请参阅此代码段:
char str[9];
scanf("%s", str);
printf("%d", strlen(str));
Run Code Online (Sandbox Code Playgroud)
使它成为一个成熟的程序,然后运行它。键入123456789,保证 9 个字符的长文本,然后查看结果。它可以容纳字符串,果然,字符串长度是9.
我什至亲眼目睹了许多专家程序员说字符串大小应该加上其容量。这个建议在很大程度上是一个神话,还是我在某个地方出错了?
假设我想创建一个Arr可以容纳x多个元素的整数数组。Arr的最后一个元素的索引值将小于 1,x因为索引值开始于0并且不是1。所以,它的长度是x-1。
那你怎么声明呢?我是这样做的:int Arr[x-1];。我不认为这有任何问题。
现在,如果Arr是一个char类型数组(即字符串),则 的长度Arr将比其int对应的长度多一,因为它在末尾有一个额外的 NULL 字符。这将最终为:(x-1)+1=x。
那么为什么这次声明必须是,char Arr[x+1]而不是简单的char Arr[x]?
这是我的代码:
sentence = input("Give me a sentence ")
word = input("What word would you like to find ")
sentence_split = sentence.split()
if word in sentence_split:
print("have found",word,)
print("The word comes in the position" )
else:
print("error have not found",word)
wordfound = (sentence_split.index(word)+1)
print(wordfound)
Run Code Online (Sandbox Code Playgroud)
我能够获得字符串中第一次出现的单词的索引.我怎样才能得到所有的事件?