标签: sequence

为什么Python允许序列的超出范围切片索引?

所以我只是遇到了一些奇怪的Python特性,并想要对它进行一些澄清.

以下数组操作有点有意义:

p = [1,2,3]
p[3:] = [4] 
p = [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

我想它实际上只是将这个值附加到最后,对吗?
但是,我为什么要这样做呢?

p[20:22] = [5,6]
p = [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

更是如此:

p[20:100] = [7,8]
p = [1,2,3,4,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)

这似乎是错误的逻辑.这似乎应该抛出错误!

任何解释?
- 这只是Python的奇怪之处吗?
- 有目的吗?
- 我是否以错误的方式思考这个问题?

python sequence slice python-3.x range-checking

72
推荐指数
2
解决办法
2874
查看次数

修复ggplot中facet的顺序

数据:

type    size    amount  
T   50%     48.4    
F   50%     48.1    
P   50%     46.8    
T   100%    25.9    
F   100%    26.0    
P   100%    24.9    
T   150%    21.1    
F   150%    21.4    
P   150%    20.1    
T   200%    20.8    
F   200%    21.5    
P   200%    16.5
Run Code Online (Sandbox Code Playgroud)

我需要使用ggplot(x轴 - >"type",y轴 - >"amount",group by"size")绘制上述数据的条形图.当我使用下面的代码时,我没有按照数据中显示的顺序获得变量"type"和"size".请看图.我已经使用了以下代码.

 ggplot(temp, aes(type, amount , fill=type, group=type, shape=type, facets=size)) + 
  geom_bar(width=0.5, position = position_dodge(width=0.6)) + 
  facet_grid(.~size) + 
  theme_bw() + 
  scale_fill_manual(values = c("darkblue","steelblue1","steelblue4"), 
                    labels = c("T", "F", "P"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 .

为了解决订单问题,我使用了以下的变量"type"的因子方法.请看图.

temp$new = factor(temp$type, levels=c("T","F","P"), labels=c("T","F","P")) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,现在我不知道如何修改变量"size"的顺序.它应该是50%,100%.150%和200%.

r sequence facet ggplot2

68
推荐指数
5
解决办法
7万
查看次数

python:获取具有特定条件的列表(序列)中的项目数

假设我有一个包含大量项目的列表.

l = [ 1, 4, 6, 30, 2, ... ]
Run Code Online (Sandbox Code Playgroud)

我想从该列表中获取项目数,其中项目应满足特定条件.我的第一个想法是:

count = len([i for i in l if my_condition(l)])
Run Code Online (Sandbox Code Playgroud)

但是如果my_condition()过滤列表也有很多项,我认为为过滤结果创建新列表只是浪费内存.为了效率,恕我直言,以上呼叫不能比:

count = 0
for i in l:
    if my_condition(l):
        count += 1
Run Code Online (Sandbox Code Playgroud)

有没有任何功能风格的方法来获得满足特定条件的项目#而不生成临时列表?

提前致谢.

python functional-programming list count sequence

66
推荐指数
4
解决办法
7万
查看次数

如何在Oracle数据库中获取所有序列?

有没有我可以运行的命令,以便我可以获得所有序列?我正在使用Oracle 11g.我正在使用Toad for Oracle连接它.我可以在视觉上看到Toad中的序列,但我想知道它的命令行.

sql database oracle toad sequence

59
推荐指数
2
解决办法
13万
查看次数

Python:检查对象是否是序列

在python中有一个简单的方法来判断某些东西是不是一个序列?我试着这么做: if x is not sequence但是python并不喜欢这样

python if-statement sequences sequence

58
推荐指数
6
解决办法
3万
查看次数

如何附加或前置Scala mutable.Seq

关于Scala,我有些不明白的地方collection.mutable.Seq.它描述了所有可变序列的接口,但是我没有看到在不创建新序列的情况下附加或前置元素的方法.我错过了一些明显的东西吗?

:++:分别追加和前插,但他们创造新的集合-为了与不变序列的行为是一致的,我想.这是好的,但为什么会出现不一样的方法+=+=:,如ArrayBufferListBuffer定义,用于就地追加和预先准备?这是否意味着我不能引用一个可变的seq,它被键入,collection.mutable.Seq就像我想要就地添加一样?

再一次,我一定错过了一些明显的东西,却找不到什么......

scala mutable sequence scala-collections

49
推荐指数
1
解决办法
2万
查看次数

顺序Guid发生器

有没有办法获得Sql Server 2005+ Sequential Guid生成器的功能,而无需插入记录来回读往返或调用本机win dll调用?我看到有人回答使用rpcrt4.dll,但我不确定是否可以从我的托管环境中进行生产.

编辑:使用@John Boker的答案我试图把它变成GuidComb生成器的更多,而不是依赖于最后生成的Guid而不是重新开始.对于种子,而不是从我使用的Guid.Empty开始

public SequentialGuid()
{
    var tempGuid = Guid.NewGuid();
    var bytes = tempGuid.ToByteArray();
    var time = DateTime.Now;
    bytes[3] = (byte) time.Year;
    bytes[2] = (byte) time.Month;
    bytes[1] = (byte) time.Day;
    bytes[0] = (byte) time.Hour;
    bytes[5] = (byte) time.Minute;
    bytes[4] = (byte) time.Second;
    CurrentGuid = new Guid(bytes);
}
Run Code Online (Sandbox Code Playgroud)

我根据评论做了这个

// 3 - the least significant byte in Guid ByteArray 
        [for SQL Server ORDER BY clause]
// 10 - the most significant byte in Guid ByteArray …
Run Code Online (Sandbox Code Playgroud)

c# guid sequence

45
推荐指数
5
解决办法
4万
查看次数

Clojure:对嵌套序列进行半展平

我有一个嵌入的矢量列表的列表,看起来像:

(([1 2]) ([3 4] [5 6]) ([7 8]))

我所知道的并不理想.我想把它弄平([1 2] [3 4] [5 6] [7 8]).

flatten不起作用:它给了我(1 2 3 4 5 6 7 8).

我该怎么做呢?我想我需要根据每个列表项的内容创建一个新列表,而不是项目,而这部分我无法从文档中找到如何做.

clojure sequence

45
推荐指数
3
解决办法
1万
查看次数

将Oracle序列重置为现有列中下一个值的最佳方法?

出于某种原因,过去的人不使用sequence.NEXTVAL插入数据.因此,当我使用sequence.NEXTVAL来填充表时,我得到了PK违规,因为该数字已在表中使用.

如何更新下一个值以使其可用?现在,我只是一遍又一遍地插入,直到它成功(INSERT INTO tbl (pk) VALUES (sequence.NEXTVAL)),然后同步下一个.

sql oracle primary-key sequence oracle10g

44
推荐指数
5
解决办法
11万
查看次数

如何在python中将元素n中的列表切片到末尾?

我在弄清楚如何切片python列表时遇到了一些麻烦,如下图所示:

>>> test = range(10)
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> test[3:-1]
[3, 4, 5, 6, 7, 8]
>>> test[3:0]
[]
>>> test[3:1]
[]
>>> test
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

据我所知,python slice意味着lst [start:end],包括start,排除end.那么我如何从元素n开始寻找列表的"休息"呢?

非常感谢您的帮助!

python list sequence slice

43
推荐指数
4
解决办法
6万
查看次数